diff options
| author | Elizabeth Hunt <me@liz.coffee> | 2025-10-05 16:40:32 -0700 |
|---|---|---|
| committer | Elizabeth Hunt <me@liz.coffee> | 2025-10-05 16:40:32 -0700 |
| commit | 5e25a1fa842fbec4a19f8d58ddf2a2847a218344 (patch) | |
| tree | 916e54507ba972eb6ea51739af547dca37483726 | |
| parent | 0ba6199538478b22763cc4c768c775a9c20baac9 (diff) | |
| download | infra-5e25a1fa842fbec4a19f8d58ddf2a2847a218344.tar.gz infra-5e25a1fa842fbec4a19f8d58ddf2a2847a218344.zip | |
Add ansicolor
| -rw-r--r-- | group_vars/all.yml | 3 | ||||
| -rw-r--r-- | group_vars/ansicolor.yml | 4 | ||||
| -rw-r--r-- | playbooks/ansicolor.yml | 7 | ||||
| -rw-r--r-- | playbooks/roles/ansicolor/tasks/main.yml | 8 | ||||
| -rw-r--r-- | playbooks/roles/ansicolor/templates/stacks/docker-compose.yml | 35 | ||||
| -rw-r--r-- | playbooks/roles/outbound/templates/proxy/nginx/conf.d/ansi.conf | 19 |
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"; + } +} |
