79 lines
2.9 KiB
YAML
79 lines
2.9 KiB
YAML
---
|
|
- name: Deploy Unifi Network App service
|
|
block:
|
|
- name: Set Unifi Network App directories
|
|
ansible.builtin.set_fact:
|
|
unifi_network_application_data_dir: "/mnt/services/unifi_network_application"
|
|
unifi_network_application_service_dir: "{{ ansible_env.HOME }}/services/unifi_network_application"
|
|
|
|
- name: Create Unifi Network App directories
|
|
ansible.builtin.file:
|
|
path: "{{ unifi_network_application_dir }}"
|
|
state: directory
|
|
mode: "0755"
|
|
loop:
|
|
- "{{ unifi_network_application_data_dir }}"
|
|
- "{{ unifi_network_application_data_dir }}/data"
|
|
- "{{ unifi_network_application_data_dir }}/db"
|
|
- "{{ unifi_network_application_service_dir }}"
|
|
loop_control:
|
|
loop_var: unifi_network_application_dir
|
|
|
|
- name: Create MongoDB initialization script
|
|
ansible.builtin.copy:
|
|
content: |
|
|
#!/bin/bash
|
|
|
|
if which mongosh > /dev/null 2>&1; then
|
|
mongo_init_bin='mongosh'
|
|
else
|
|
mongo_init_bin='mongo'
|
|
fi
|
|
"${mongo_init_bin}" <<EOF
|
|
use ${MONGO_AUTHSOURCE}
|
|
db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
|
|
db.createUser({
|
|
user: "${MONGO_USER}",
|
|
pwd: "${MONGO_PASS}",
|
|
roles: [
|
|
{ db: "${MONGO_DBNAME}", role: "dbOwner" },
|
|
{ db: "${MONGO_DBNAME}_stat", role: "dbOwner" },
|
|
{ db: "${MONGO_DBNAME}_audit", role: "dbOwner" }
|
|
]
|
|
})
|
|
EOF
|
|
dest: "{{ unifi_network_application_data_dir }}/init-mongo.sh"
|
|
mode: "0755"
|
|
register: unifi_mongo_init_script
|
|
|
|
- name: Deploy Unifi Network App docker-compose.yml
|
|
ansible.builtin.template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ unifi_network_application_service_dir }}/docker-compose.yml"
|
|
mode: "0644"
|
|
register: unifi_network_application_compose
|
|
|
|
- name: Clean MongoDB database for fresh initialization
|
|
ansible.builtin.file:
|
|
path: "{{ unifi_network_application_data_dir }}/db"
|
|
state: absent
|
|
when: unifi_mongo_init_script.changed
|
|
|
|
- name: Recreate MongoDB database directory
|
|
ansible.builtin.file:
|
|
path: "{{ unifi_network_application_data_dir }}/db"
|
|
state: directory
|
|
mode: "0755"
|
|
when: unifi_mongo_init_script.changed
|
|
|
|
- name: Stop Unifi Network App service
|
|
ansible.builtin.command: docker compose -f "{{ unifi_network_application_service_dir }}/docker-compose.yml" down --remove-orphans
|
|
when: unifi_network_application_compose.changed or unifi_mongo_init_script.changed
|
|
|
|
- name: Start Unifi Network App service
|
|
ansible.builtin.command: docker compose -f "{{ unifi_network_application_service_dir }}/docker-compose.yml" up -d
|
|
when: unifi_network_application_compose.changed or unifi_mongo_init_script.changed
|
|
tags:
|
|
- services
|
|
- unifi
|