diff --git a/host_vars/dell.yml b/host_vars/dell.yml index 080ec3b..b176464 100644 --- a/host_vars/dell.yml +++ b/host_vars/dell.yml @@ -13,14 +13,20 @@ pihole_volumes: dell_app: {} dell_dns: {} + +mariadb_network: mariadb_net + portainer_roles: + # mariadb network + - role: portainer_mariadb + - role: portainer_bookstack + # individual networks - role: portainer_minio - role: portainer_glances - role: portainer_dashdot - role: portainer_dashy - role: portainer_diun - role: portainer_vaultwarden - - role: portainer_bookstack - role: portainer_vikunja - role: portainer_linkding - role: portainer_gotify diff --git a/roles/portainer_bookstack/defaults/main.yml b/roles/portainer_bookstack/defaults/main.yml index fe0bc8b..ece70e6 100644 --- a/roles/portainer_bookstack/defaults/main.yml +++ b/roles/portainer_bookstack/defaults/main.yml @@ -4,7 +4,7 @@ bookstack_image: linuxserver/bookstack bookstack_tag: 23.06.1 bookstack_puid: 1000 bookstack_pgid: 1000 -bookstack_db_host: qnap +bookstack_db_host: mariadb # this works only if bookstack is on the mariadb_network bookstack_database: bookstackapp bookstack_db_user: bookstack bookstack_app_url: https://bookstack.cianhatton.ie diff --git a/roles/portainer_bookstack/tasks/main.yml b/roles/portainer_bookstack/tasks/main.yml index 1ec8185..e9815bd 100644 --- a/roles/portainer_bookstack/tasks/main.yml +++ b/roles/portainer_bookstack/tasks/main.yml @@ -1,4 +1,8 @@ --- +- name: Bookstack | Create docker network. + docker_network: + name: '{{ mariadb_network }}' + - name: "Bookstack | Restore any missing volumes from S3" ansible.builtin.include_role: name: chatton.docker_backup.docker_s3_volume_restore @@ -36,3 +40,8 @@ restart: "{{ restart_policy }}" volumes: config: {} + + networks: + default: + name: "{{ mariadb_network }}" + external: true diff --git a/roles/portainer_mariadb/defaults/main.yml b/roles/portainer_mariadb/defaults/main.yml new file mode 100644 index 0000000..273cffe --- /dev/null +++ b/roles/portainer_mariadb/defaults/main.yml @@ -0,0 +1,13 @@ +--- +mariadb_portainer_stack_name: mariadb +mariadb_state: present +mariadb_image: mariadb +mariadb_tag: 10.8.3 +mariadb_container_name: mariadb +mariadb_expose_port: 3306 +mariadb_network: mariadb_net + +adminer_container_name: adminer +adminer_image: adminer +adminer_tag: latest +adminer_expose_port: 3307 diff --git a/roles/portainer_mariadb/tasks/main.yml b/roles/portainer_mariadb/tasks/main.yml new file mode 100644 index 0000000..9be021f --- /dev/null +++ b/roles/portainer_mariadb/tasks/main.yml @@ -0,0 +1,55 @@ +--- +- name: Mariadb | Create docker network. + docker_network: + name: '{{ mariadb_network }}' + +- name: "Mariadb | Restore any missing volumes from S3" + ansible.builtin.include_role: + name: chatton.docker_backup.docker_s3_volume_restore + vars: + docker_backup_s3_volume: "{{ item }}" + with_items: + - name: "{{ mariadb_portainer_stack_name }}_data" + - name: "{{ mariadb_portainer_stack_name }}_config" + +- name: "Mariadb | Update Portainer." + chatton.portainer.portainer_stack: + username: '{{ portainer_user }}' + password: '{{ portainer.password }}' + base_url: '{{ portainer_base_url }}' + stack_name: '{{ mariadb_portainer_stack_name }}' + endpoint_id: '{{ portainer_endpoint }}' + state: "{{ mariadb_state }}" + definition: + version: '3.1' + services: + mariadb: + labels: "{{ backup_labels }}" + container_name: "{{ mariadb_container_name }}" + image: "{{ mariadb_image }}:{{ mariadb_tag }}" + hostname: mariadb + restart: "{{ restart_policy }}" + ports: + - "{{ mariadb_expose_port }}:3306" + volumes: + - data:/var/lib/mysql + - config:/etc/mysql/conf.d + environment: + - MYSQL_ROOT_PASSWORD={{ mariadb.mysql_root_password }} + + adminer: + restart: "{{ restart_policy }}" + image: "{{ adminer_image }}:{{ adminer_tag }}" + environment: + ADMINER_DEFAULT_SERVER: mariadb + ADMINER_DESIGN: galkaev + ports: + - "{{ adminer_expose_port }}:8080" + volumes: + data: + config: + + networks: + default: + name: "{{ mariadb_network }}" + external: true