From 417cc9cf69bfc9343a0848f3a030d76faae28dcf Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Wed, 7 Sep 2022 08:57:13 +0100 Subject: [PATCH] Add template vars (#27) --- host_vars/qnap.yml | 54 ++++++++++++------- .../deploy_portainer_stack/defaults/main.yml | 3 -- roles/deploy_portainer_stack/tasks/main.yml | 7 --- roles/setup_hosted_services/tasks/main.yml | 10 ++-- .../setup_hosted_services/templates/gitea.j2 | 2 +- .../templates/mariadb.j2 | 2 +- .../templates/nextcloud.j2 | 2 +- .../templates/photoprism.j2 | 2 +- 8 files changed, 46 insertions(+), 36 deletions(-) diff --git a/host_vars/qnap.yml b/host_vars/qnap.yml index 15c3e73..7be206f 100644 --- a/host_vars/qnap.yml +++ b/host_vars/qnap.yml @@ -21,36 +21,52 @@ devices: - uuid: c528bf82-61ab-4f3d-87e0-d1e6e02ef7ec # /dev/sdf path: /mnt/ssd0/ +# docker networks to be created before portainer stacks are created. +external_docker_networks: + - mariadb_net + services: - name: gitea - endpoint_id: 2 + endpoint_id: &qnap_endpoint 2 + template_vars: + image: gitea/gitea + tag: 1.16.9 - name: mealie - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: linkding - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: overseerr - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: nextcloud - endpoint_id: 2 - external_docker_networks: - - mariadb_net + endpoint_id: *qnap_endpoint + template_vars: + default_network: mariadb_net - name: dashboards - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: nginx-proxy-manager - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: plex - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: uptime-kuma - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: vpn-stack - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} - name: mariadb - endpoint_id: 2 - external_docker_networks: - - mariadb_net + endpoint_id: *qnap_endpoint + template_vars: + default_network: mariadb_net - name: photoprism - endpoint_id: 2 - external_docker_networks: - - mariadb_net + endpoint_id: *qnap_endpoint + template_vars: + default_network: mariadb_net - name: olivetin - endpoint_id: 2 + endpoint_id: *qnap_endpoint + template_vars: {} diff --git a/roles/deploy_portainer_stack/defaults/main.yml b/roles/deploy_portainer_stack/defaults/main.yml index 2326e2a..cc8377b 100644 --- a/roles/deploy_portainer_stack/defaults/main.yml +++ b/roles/deploy_portainer_stack/defaults/main.yml @@ -7,6 +7,3 @@ portainer_stack_directories: [] # variables passed to the template function portainer_stack_template_vars: {} - -# list of docker networks which should be created -portainer_stack_external_docker_networks: [] diff --git a/roles/deploy_portainer_stack/tasks/main.yml b/roles/deploy_portainer_stack/tasks/main.yml index ac5c6ed..0b63809 100644 --- a/roles/deploy_portainer_stack/tasks/main.yml +++ b/roles/deploy_portainer_stack/tasks/main.yml @@ -52,13 +52,6 @@ docker_backup_restore_latest_s3_key: true docker_backup_s3_restores: "{{ restore_volumes }}" -- name: "Stack {{ portainer_stack_name }} | Create external docker networks." - docker_network: - name: '{{ docker_network }}' - loop: '{{ portainer_stack_external_docker_networks }}' - loop_control: - loop_var: docker_network - - name: "Stack {{ portainer_stack_name }} | Update Portainer." chatton.portainer.portainer_stack: username: admin diff --git a/roles/setup_hosted_services/tasks/main.yml b/roles/setup_hosted_services/tasks/main.yml index d6da6e9..2b8fc1d 100644 --- a/roles/setup_hosted_services/tasks/main.yml +++ b/roles/setup_hosted_services/tasks/main.yml @@ -37,13 +37,17 @@ notify: - restart-olivetin +- name: Create external docker networks. + docker_network: + name: '{{ item }}' + with_items: '{{ external_docker_networks }}' + - name: Deploy Portainer stacks. ansible.builtin.include_role: name: deploy_portainer_stack vars: portainer_stack_name: "{{ item.name }}" portainer_stack_endpoint_id: "{{ item.endpoint_id }}" - portainer_stack_external_docker_networks: "{{ item.external_docker_networks | default([]) }}" portainer_stack_template_vars: "{{ item.template_vars | default({}) }}" with_items: "{{ services }}" @@ -59,7 +63,7 @@ ansible.builtin.cron: name: backup docker volumes (nightly) weekday: "*" - minute: "*" + minute: "0" hour: "4" user: "{{ homelab_user }}" job: > @@ -73,7 +77,7 @@ ansible.builtin.cron: name: backup docker volumes (monthly) month: "*" - day: "1" + day: "0" user: "{{ homelab_user }}" job: > /home/{{ homelab_user }}/.local/bin/ansible-pull diff --git a/roles/setup_hosted_services/templates/gitea.j2 b/roles/setup_hosted_services/templates/gitea.j2 index be74e08..3c71ab1 100644 --- a/roles/setup_hosted_services/templates/gitea.j2 +++ b/roles/setup_hosted_services/templates/gitea.j2 @@ -6,7 +6,7 @@ services: labels: ie.cianhatton.backup.enabled: "true" ie.cianhatton.backup.schedule: "{{backups.schedule_keys.monthly}}" - image: gitea/gitea:1.16.9 + image: "{{ template_vars.image }}:{{ template_vars.tag }}" container_name: gitea environment: - USER_UID=1000 diff --git a/roles/setup_hosted_services/templates/mariadb.j2 b/roles/setup_hosted_services/templates/mariadb.j2 index 32c0e7e..442d017 100644 --- a/roles/setup_hosted_services/templates/mariadb.j2 +++ b/roles/setup_hosted_services/templates/mariadb.j2 @@ -32,5 +32,5 @@ volumes: networks: default: - name: mariadb_net + name: {{ template_vars.default_network }} external: true diff --git a/roles/setup_hosted_services/templates/nextcloud.j2 b/roles/setup_hosted_services/templates/nextcloud.j2 index af9499d..b9e2ba7 100644 --- a/roles/setup_hosted_services/templates/nextcloud.j2 +++ b/roles/setup_hosted_services/templates/nextcloud.j2 @@ -17,5 +17,5 @@ volumes: networks: default: - name: mariadb_net + name: {{ template_vars.default_network }} external: true diff --git a/roles/setup_hosted_services/templates/photoprism.j2 b/roles/setup_hosted_services/templates/photoprism.j2 index 4f405ae..08524b7 100644 --- a/roles/setup_hosted_services/templates/photoprism.j2 +++ b/roles/setup_hosted_services/templates/photoprism.j2 @@ -50,5 +50,5 @@ services: networks: default: - name: mariadb_net + name: {{ template_vars.default_network }} external: true