lava was created by hand without an ip_range, so any container could be given Caddy's fixed IP (172.20.0.5). After a reboot the containers race for the low addresses and Caddy often fails with "Address already in use". - The docker role now creates lava as 172.20.0.0/16 with dynamic addresses limited to 172.20.128.0/17, so 172.20.0.x is free for fixed IPs, and warns if the network still has the old layout. - Gitea gets fixed IP 172.20.0.6 once the network has the reserved range, since its ufw-docker SSH rule points at its IP. - ufw-docker allow rules for Caddy (80, 443) and Gitea SSH are managed by the playbook and follow IP changes. - migrate-lava-network.yml recreates the existing network once: it takes down every compose project on lava (volumes kept), recreates the network, and brings them back up, Caddy first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
29 lines
778 B
YAML
29 lines
778 B
YAML
- name: make gitea directories
|
|
ansible.builtin.file:
|
|
path: "{{ item}}"
|
|
state: directory
|
|
loop:
|
|
- /opt/stacks/gitea
|
|
- /opt/stacks/gitea/data
|
|
|
|
- name: Template out the compose file
|
|
ansible.builtin.template:
|
|
src: gitea-compose.yml.j2
|
|
dest: /opt/stacks/gitea/compose.yml
|
|
owner: root
|
|
mode: '0640'
|
|
group: docker
|
|
|
|
- name: deploy gitea stack
|
|
community.docker.docker_compose_v2:
|
|
project_src: /opt/stacks/gitea
|
|
files:
|
|
- compose.yml
|
|
|
|
# Lets git over SSH (host port 222) through. Re-adds the rule if gitea's IP changed.
|
|
- name: allow public ssh to gitea
|
|
ansible.builtin.command: /usr/local/bin/ufw-docker.sh allow gitea 22/tcp
|
|
register: gitea_ufw
|
|
changed_when: "'Skipping' not in gitea_ufw.stdout"
|
|
when: not ansible_check_mode
|