66 lines
2.2 KiB
YAML
66 lines
2.2 KiB
YAML
- name: Configure Gitea reverse proxy on ru-vps
|
|
hosts: ru-vps
|
|
gather_facts: false
|
|
vars:
|
|
caddy_dir: /opt/services/ru-vps/caddy
|
|
caddyfile_path: /opt/services/ru-vps/caddy/Caddyfile
|
|
gitea_domain: git.ada-dev.ru
|
|
gitea_upstream: 192.168.1.25:3000
|
|
|
|
tasks:
|
|
- name: Ensure Caddy service directory exists
|
|
ansible.builtin.file:
|
|
path: "{{ caddy_dir }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
|
|
- name: Configure Gitea Caddy site
|
|
ansible.builtin.blockinfile:
|
|
path: "{{ caddyfile_path }}"
|
|
create: true
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
marker: "# {mark} ANSIBLE MANAGED GITEA SITE"
|
|
block: |
|
|
{{ gitea_domain }} {
|
|
reverse_proxy {{ gitea_upstream }}
|
|
}
|
|
register: gitea_caddy_site
|
|
|
|
- name: Remove legacy unmanaged Gitea Caddy site
|
|
ansible.builtin.replace:
|
|
path: "{{ caddyfile_path }}"
|
|
regexp: '(?ms)^git\.ada-dev\.ru \{\n\s*reverse_proxy 10\.122\.62\.51:3002\n\}\n+'
|
|
replace: ''
|
|
register: gitea_legacy_site
|
|
|
|
- name: Validate host Caddy config
|
|
ansible.builtin.command: caddy validate --config {{ caddyfile_path }}
|
|
changed_when: false
|
|
|
|
- name: Check Caddy container mounted config
|
|
ansible.builtin.command: docker exec caddy grep -F 'reverse_proxy {{ gitea_upstream }}' /etc/caddy/Caddyfile
|
|
register: gitea_container_caddyfile
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: Restart Caddy when config changed or bind mount is stale
|
|
ansible.builtin.command: docker restart caddy
|
|
when: >-
|
|
gitea_caddy_site.changed or
|
|
gitea_legacy_site.changed or
|
|
gitea_container_caddyfile.rc != 0
|
|
|
|
- name: Validate Caddy container config after restart
|
|
ansible.builtin.command: docker exec caddy caddy validate --config /etc/caddy/Caddyfile
|
|
changed_when: false
|
|
|
|
- name: Check Gitea upstream from ru-vps
|
|
ansible.builtin.command: curl -fsS -o /dev/null -w '%{http_code}' http://{{ gitea_upstream }}/
|
|
register: gitea_upstream_http
|
|
changed_when: false
|
|
failed_when: gitea_upstream_http.stdout != '200'
|