From 5c594ce7b0de71f93f7c6225d8be1df147929068 Mon Sep 17 00:00:00 2001 From: owine Date: Tue, 7 Nov 2023 09:19:21 -0600 Subject: [PATCH] Unifi: Refactor to Unifi Network Application image --- roles/unifi/defaults/main.yml | 17 ++++++++++++++++- roles/unifi/tasks/main.yml | 18 ++++++++++++++++++ roles/unifi/templates/init-mongo.js.j2 | 1 + 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 roles/unifi/templates/init-mongo.js.j2 diff --git a/roles/unifi/defaults/main.yml b/roles/unifi/defaults/main.yml index f6887aa795..0e47ee24ed 100644 --- a/roles/unifi/defaults/main.yml +++ b/roles/unifi/defaults/main.yml @@ -13,6 +13,15 @@ unifi_name: unifi +################################ +# Settings +################################ + +unifi_mongo_user: "unifi" +unifi_mongo_pass: "password4321" +unifi_mongo_port: 27017 +unifi_mongo_dbname: "unifi:" + ################################ # Paths ################################ @@ -65,7 +74,8 @@ unifi_docker_container: "{{ unifi_name }}" # Image unifi_docker_image_pull: true unifi_docker_image_tag: "latest" -unifi_docker_image: "lscr.io/linuxserver/unifi-controller:{{ unifi_docker_image_tag }}" +unufi_docker_image_repo: "lscr.io/linuxserver/unifi-network-application" +unifi_docker_image: "{{ unifi_docker_image_repo }}:{{ unifi_docker_image_tag }}" # Ports unifi_docker_ports_defaults: @@ -81,6 +91,11 @@ unifi_docker_envs_default: PUID: "{{ uid }}" PGID: "{{ gid }}" TZ: "{{ tz }}" + MONGO_USER: "{{ unifi_mongo_user }}" + MONGO_PASS: "{{ unifi_mongo_pass }}" + MONGO_HOST: "{{ unifi_name }}_mongo" + MONGO_PORT: "{{ unifi_mongo_port }}" + MONGO_DBNAME: "{{ unifi_mongo_dbname }}" unifi_docker_envs_custom: {} unifi_docker_envs: "{{ unifi_docker_envs_default | combine(unifi_docker_envs_custom) }}" diff --git a/roles/unifi/tasks/main.yml b/roles/unifi/tasks/main.yml index f58bfae463..c4395adc8a 100644 --- a/roles/unifi/tasks/main.yml +++ b/roles/unifi/tasks/main.yml @@ -14,6 +14,24 @@ dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" +- name: "Unifi | Import init-mongo.js" + ansible.builtin.template: + src: init-mongo.js.j2 + dest: '{{ unifi_paths_location }}/init-mongo.js' + owner: "{{ user.name }}" + group: "{{ user.name }}" + mode: "0775" + force: yes + +- name: MongoDB Role + ansible.builtin.include_role: + name: mongodb + vars: + mongodb_instances: ["{{ unifi_name }}_mongo"] + mongodb_paths_location: "{{ server_appdata_path }}/{{ unifi_name }}" + mongodb_docker_image_tag: "4.4" + mongodb_docker_volumes_custom: ["/opt/unifi/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro"] + - name: Remove existing Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" diff --git a/roles/unifi/templates/init-mongo.js.j2 b/roles/unifi/templates/init-mongo.js.j2 new file mode 100644 index 0000000000..d71565b02e --- /dev/null +++ b/roles/unifi/templates/init-mongo.js.j2 @@ -0,0 +1 @@ +db.getSiblingDB("{{ unifi_mongo_ dbname }}").createUser({user: "{{ unifi_mongo_user }}", pwd: "{{ unifi_mongo_pass }}", roles: [{role: "dbOwner", db: "{{ unifi_mongo_dbname }}"}, {role: "dbOwner", db: "{{ unifi_mongo_dbname }}_stat"}]}); \ No newline at end of file