summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--group_vars/all.yml3
-rw-r--r--group_vars/ansicolor.yml4
-rw-r--r--playbooks/ansicolor.yml7
-rw-r--r--playbooks/roles/ansicolor/tasks/main.yml8
-rw-r--r--playbooks/roles/ansicolor/templates/stacks/docker-compose.yml35
-rw-r--r--playbooks/roles/outbound/templates/proxy/nginx/conf.d/ansi.conf19
6 files changed, 76 insertions, 0 deletions
diff --git a/group_vars/all.yml b/group_vars/all.yml
index 3665490..85d54b2 100644
--- a/group_vars/all.yml
+++ b/group_vars/all.yml
@@ -164,6 +164,9 @@ mesh:
- type: "A"
name: "graph.{{ domain }}"
ip: "{{ loadbalancer_ip }}"
+ - type: "A"
+ name: "ansi.{{ domain }}"
+ ip: "{{ loadbalancer_ip }}"
# -- </mesh> --
# -- <logo> --
diff --git a/group_vars/ansicolor.yml b/group_vars/ansicolor.yml
new file mode 100644
index 0000000..c70e05f
--- /dev/null
+++ b/group_vars/ansicolor.yml
@@ -0,0 +1,4 @@
+---
+
+ansicolor_domain: ansi.liz.coffee
+ansicolor_base: "{{ swarm_base }}/ansicolor"
diff --git a/playbooks/ansicolor.yml b/playbooks/ansicolor.yml
new file mode 100644
index 0000000..78e1768
--- /dev/null
+++ b/playbooks/ansicolor.yml
@@ -0,0 +1,7 @@
+---
+
+- name: ansicolor setup
+ hosts: ansicolor
+ become: true
+ roles:
+ - ansicolor
diff --git a/playbooks/roles/ansicolor/tasks/main.yml b/playbooks/roles/ansicolor/tasks/main.yml
new file mode 100644
index 0000000..d2dc0dc
--- /dev/null
+++ b/playbooks/roles/ansicolor/tasks/main.yml
@@ -0,0 +1,8 @@
+---
+
+- name: Deploy ansicolor
+ ansible.builtin.import_tasks: manage-docker-swarm-service.yml
+ vars:
+ service_name: ansicolor
+ template_render_dir: "../templates"
+ service_destination_dir: "{{ ansicolor_base }}"
diff --git a/playbooks/roles/ansicolor/templates/stacks/docker-compose.yml b/playbooks/roles/ansicolor/templates/stacks/docker-compose.yml
new file mode 100644
index 0000000..7a0f6ec
--- /dev/null
+++ b/playbooks/roles/ansicolor/templates/stacks/docker-compose.yml
@@ -0,0 +1,35 @@
+services:
+ ansicolor:
+ image: oci.liz.coffee/emprespresso/ansicolor:release
+ environment:
+ - TZ={{ timezone }}
+ - DEPLOYMENT_TIME={{ deployment_time }}
+ networks:
+ - proxy
+ healthcheck:
+ test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:80 || exit 1"]
+ timeout: 15s
+ interval: 30s
+ retries: 3
+ start_period: 5s
+ deploy:
+ mode: replicated
+ update_config:
+ parallelism: 1
+ failure_action: rollback
+ order: start-first
+ delay: 5s
+ monitor: 30s
+ replicas: 1
+ labels:
+ - traefik.enable=true
+ - traefik.swarm.network=proxy
+ - traefik.http.routers.ansicolor.tls=true
+ - traefik.http.routers.ansicolor.tls.certResolver=letsencrypt
+ - traefik.http.routers.ansicolor.rule=Host(`{{ ansicolor_domain }}`)
+ - traefik.http.routers.ansicolor.entrypoints=websecure
+ - traefik.http.services.ansicolor.loadbalancer.server.port=80
+
+networks:
+ proxy:
+ external: true
diff --git a/playbooks/roles/outbound/templates/proxy/nginx/conf.d/ansi.conf b/playbooks/roles/outbound/templates/proxy/nginx/conf.d/ansi.conf
new file mode 100644
index 0000000..3bec413
--- /dev/null
+++ b/playbooks/roles/outbound/templates/proxy/nginx/conf.d/ansi.conf
@@ -0,0 +1,19 @@
+server {
+ listen 80;
+ server_name ansi.liz.coffee;
+
+ real_ip_header X-Forwarded-For;
+ real_ip_recursive on;
+ set_real_ip_from {{ docker_network }};
+
+ location / {
+ proxy_pass https://{{ loadbalancer_ip }};
+ proxy_ssl_verify off;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ }
+}