62 lines
2.1 KiB
YAML
62 lines
2.1 KiB
YAML
---
|
|
- name: Deploy Dokploy control plane
|
|
hosts: swarm_managers
|
|
become: true
|
|
gather_facts: false
|
|
run_once: true
|
|
|
|
tasks:
|
|
- name: Ensure Dokploy network exists
|
|
ansible.builtin.command: docker network create --driver overlay --attachable {{ dokploy_network_name }}
|
|
register: net_create
|
|
changed_when: "'already exists' not in net_create.stderr"
|
|
failed_when:
|
|
- net_create.rc != 0
|
|
- "'already exists' not in net_create.stderr"
|
|
|
|
- name: Ensure /etc/dokploy directory exists
|
|
ansible.builtin.file:
|
|
path: "{{ dokploy_etc_dir }}"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Ensure Traefik dynamic directory exists
|
|
ansible.builtin.file:
|
|
path: "{{ dokploy_etc_dir }}/traefik/dynamic"
|
|
state: directory
|
|
mode: "0755"
|
|
|
|
- name: Create or update Traefik static config
|
|
ansible.builtin.template:
|
|
src: traefik.yml.j2
|
|
dest: "{{ dokploy_etc_dir }}/traefik/traefik.yml"
|
|
mode: "0644"
|
|
|
|
- name: Create Dokploy dynamic config
|
|
ansible.builtin.template:
|
|
src: traefik-dokploy.yml.j2
|
|
dest: "{{ dokploy_etc_dir }}/traefik/dynamic/dokploy.yml"
|
|
mode: "0644"
|
|
|
|
- name: Create or update Docker secrets
|
|
ansible.builtin.shell: |
|
|
set -e
|
|
printf '%s' '{{ item.value }}' | docker secret create {{ item.name }} - 2>/dev/null || \
|
|
printf '%s' '{{ item.value }}' | docker secret create --replace {{ item.name }} -
|
|
loop:
|
|
- { name: dokploy_postgres_password, value: "{{ vault_dokploy_postgres_password }}" }
|
|
- { name: dokploy-auth-secret, value: "{{ vault_dokploy_auth_secret }}" }
|
|
no_log: true
|
|
|
|
- name: Render Dokploy stack file
|
|
ansible.builtin.template:
|
|
src: dokploy-stack.yml.j2
|
|
dest: "{{ dokploy_compose_dir }}/dokploy-stack.yml"
|
|
mode: "0644"
|
|
|
|
- name: Deploy Dokploy stack
|
|
ansible.builtin.command: |
|
|
docker stack deploy -c {{ dokploy_compose_dir }}/dokploy-stack.yml dokploy
|
|
register: stack_deploy
|
|
changed_when: "'Nothing found in stack' not in stack_deploy.stdout"
|