diff --git a/meta/main.yml b/meta/main.yml index 1767721e58b3a856faa0f6345d76bae363c7495d..d5af5ea5e7e69993faa8ee2b068d7ea539b6d9cc 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,18 +1,18 @@ --- galaxy_info: - author: lefilament - description: Role for deploying Odoo Community Edition on Docker - company: Le Filament (https://le-filament.com) - license: AGPL-3.0-or-later - min_ansible_version: "2.1" - platforms: - - name: Ubuntu - versions: - - bionic - - focal - galaxy_tags: - - odoo - - community - - docker - - metabase - - postgresql + author: lefilament + description: Role for deploying Odoo Community Edition on Docker + company: Le Filament (https://le-filament.com) + license: AGPL-3.0-or-later + min_ansible_version: "2.1" + platforms: + - name: Ubuntu + versions: + - bionic + - focal + galaxy_tags: + - odoo + - community + - docker + - metabase + - postgresql diff --git a/tasks/main.yml b/tasks/main.yml index 0fc67f3e8459ed90de11039753977357cada8dae..ca48bbc10ebac5072191b99d468cce2715e26f78 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -20,9 +20,9 @@ - name: "Set empty lists to trigger actions on instances" tags: + - "docker_odoo_config_compose" + - "docker_odoo_metabase" - "docker_proxy" - - "metabase" - - "odoo_config_compose_restart" set_fact: instances_to_pull: [] instances_to_rebuild: [] @@ -72,7 +72,7 @@ - name: "Copy private SSH keys file" tags: - - "git_ssh_keys" + - "docker_odoo_git_ssh_keys" vars: item: "{{ item_instance_sshkey.0 }}" ansible.builtin.copy: @@ -107,7 +107,7 @@ - name: "Copy ssh config for connecting to git repositories" tags: - - "git_ssh_keys" + - "docker_odoo_git_ssh_keys" vars: template_git_ssh_private_keys: "{{ git_ssh_private_keys }}" ansible.builtin.template: @@ -137,8 +137,8 @@ - name: "Copy odoo.conf file" tags: - - "odoo_config" - - "odoo_config_odoo" + - "docker_odoo_config" + - "docker_odoo_config_odoo" vars: template_admin_passwd: "{{ odoo_source_instance.value.master_pass | pbkdf2_passwd(65534 | random(seed=inventory_hostname) | string) }}" template_server_wide_modules: "{{ odoo_instance_setup.server_wide_modules | join(',') }}{% if odoo_instance.value.odoo_server_wide_modules is defined %},{{ odoo_instance.value.odoo_server_wide_modules | join(',') }}{% endif %}" @@ -179,8 +179,8 @@ - name: Copy Dockerfile to retrieve private repos and extra OCA ones tags: - - "odoo_config" - - "odoo_config_dockerfile" + - "docker_odoo_config" + - "docker_odoo_config_dockerfile" vars: template_custom_ssh_config: "{{ git_ssh_private_keys is defined }}" template_odoo_instance: "{{ odoo_instance }}" @@ -213,11 +213,10 @@ - name: Copy docker compose service tags: - - "odoo_config" - - "odoo_config_compose" - - "odoo_config_compose_restart" + - "docker_odoo_config" + - "docker_odoo_config_compose" + - "docker_odoo_metabase" - "docker_proxy" - - "metabase" vars: template_odoo_instance: "{{ odoo_instance }}" template_odoo_instance_setup: "{{ odoo_instance_setup }}" @@ -244,9 +243,9 @@ # - "restart odoo image" - name: "Add instance to restart list if files was changed" tags: + - "docker_odoo_metabase" + - "docker_odoo_config_compose" - "docker_proxy" - - "metabase" - - "odoo_config_compose_restart" set_fact: instances_to_restart: "{{ instances_to_restart + [item.item.key] }}" loop: "{{ result.results | flatten(levels=1) }}" @@ -296,7 +295,7 @@ - name: "Get image from another instance" tags: - "never" - - "check_image" + - "docker_odoo_check_image" include_tasks: "instance_images.yml" loop: "{{ odoo_instances | dict2items }}" loop_control: @@ -307,35 +306,22 @@ - name: "Flush handlers" tags: + - "docker_odoo_config_compose" + - "docker_odoo_metabase" - "docker_proxy" - - "metabase" - - "odoo_config_compose_restart" ansible.builtin.meta: flush_handlers -- name: "Restart instances: remove instance containers" +- name: "Restart instances" tags: + - "docker_odoo_config_compose" + - "docker_odoo_metabase" - "docker_proxy" - - "metabase" - - "odoo_config_compose_restart" community.docker.docker_compose_v2: project_src: "/home/docker/{{ odoo_instance.key }}/" - remove_orphans: true - state: absent - loop: "{{ instances_to_restart | unique | sort }}" - when: > - allow_restart is truthy(convert_bool=True) - and instances_to_restart | length > 0 - -- name: "Restart instances: start instance containers" - tags: - - "docker_proxy" - - "metabase" - - "odoo_config_compose_restart" - community.docker.docker_compose_v2: - project_src: /home/docker/{{ odoo_instance.key }}/ recreate: always remove_orphans: true state: present + pull: missing loop: "{{ instances_to_restart | unique | sort }}" when: > allow_restart is truthy(convert_bool=True) @@ -346,7 +332,7 @@ # -------------------------------------------------- - name: "Copy sql script to be run before restoring db from backup_instance" tags: - - "odoo_backup" + - "docker_odoo_backup" vars: template_database_name: "{{ odoo_instance.value.db }}" ansible.builtin.template: @@ -367,7 +353,7 @@ - name: "Copy sql script to be run after restoring db from backup_instance" tags: - - "odoo_backup" + - "docker_odoo_backup" ansible.builtin.template: src: "post_restore-odootest.sql.j2" dest: "/home/docker/backups/post_restore-{{ odoo_instance.key }}.sql" @@ -386,7 +372,7 @@ - name: "Copy compose file to restore db from backup_instance" tags: - - "odoo_backup" + - "docker_odoo_backup" vars: # Allow role vars to work with `item` variable. item: "{{ item_account_instance.1 }}" @@ -418,13 +404,13 @@ # -------------------------------------------------- - name: "Set empty lists to filtered instances" tags: - - "odoo_backup" + - "docker_odoo_backup" set_fact: odoo_instances_filtered: [] - name: "Filter Odoo instance that needs backup" tags: - - "odoo_backup" + - "docker_odoo_backup" set_fact: odoo_instances_filtered: "{{ odoo_instances_filtered + [odoo_instance] }}" loop: "{{ odoo_instances | dict2items }}" @@ -437,7 +423,7 @@ - name: "Copy docker compose for backup" tags: - - "odoo_backup" + - "docker_odoo_backup" vars: # Allow role vars to work with `item` variable. item: "{{ item_account_instance.1 }}" @@ -463,7 +449,7 @@ - name: "Add cron job to backup instances every day" tags: - - "odoo_backup" + - "docker_odoo_backup" vars: # Allow role vars to work with `item` variable. item: "{{ item_account_instance.1 }}" @@ -502,7 +488,7 @@ # -------------------------------------------------- - name: "Allow readonly user connection to prod db" tags: - - "db_remote_ro_user" + - "docker_odoo_db_remote_ro_user" vars: pg_hba_path: "/var/lib/docker{{ '/' + (dockremap_subuid | string) + '.' + (dockremap_subgid | string) if docker_userns_remap else '' }}/volumes/{{ odoo_instance.key }}_db/_data/pg_hba.conf" ansible.builtin.blockinfile: @@ -523,7 +509,7 @@ - name: "Disable access all rights to prod db" tags: - - "db_remote_ro_user" + - "docker_odoo_db_remote_ro_user" vars: pg_hba_path: "/var/lib/docker{{ '/' + (dockremap_subuid | string) + '.' + (dockremap_subgid | string) if docker_userns_remap else '' }}/volumes/{{ odoo_instance.key }}_db/_data/pg_hba.conf" ansible.builtin.lineinfile: @@ -544,7 +530,8 @@ # Remote imports section # -------------------------------------------------- - name: Remote Imports - tags: "remote_imports" + tags: + - "docker_odoo_remote_imports" block: - name: Push private keys for any external tool connection when: private_keys is defined diff --git a/templates/docker-compose.yaml.j2 b/templates/docker-compose.yaml.j2 index 2c136c0d26f12bab1bbd090eec33515283f545c4..a6ad062af034654c1cfcb4a07e3ac3e063207d0d 100644 --- a/templates/docker-compose.yaml.j2 +++ b/templates/docker-compose.yaml.j2 @@ -1,4 +1,3 @@ -version: "2.1" services: odoo: {# if instance is to be built #} diff --git a/templates/whitelists.yaml.j2 b/templates/whitelists.yaml.j2 index 59218ab5ac0e73de1a29f4b97feac095c58cff0f..742676a8c133565cbf4cc126df3c890d269ddcda 100644 --- a/templates/whitelists.yaml.j2 +++ b/templates/whitelists.yaml.j2 @@ -1,4 +1,3 @@ -version: "2.1" services: {% for url in whitelisted_urls %}