diff --git a/roles/mariadb/defaults/main.yml b/roles/mariadb/defaults/main.yml index 86ff0aa..37a7673 100644 --- a/roles/mariadb/defaults/main.yml +++ b/roles/mariadb/defaults/main.yml @@ -1,8 +1,9 @@ --- - mariadb_version: "10.11.9" mariadb_base_path: /var/lib/mariadb -mariadb_data_path: "{{ mariadb_base_path }}/{{ mariadb_version }}" +mariadb_data_path: >-2 + {{ mariadb_base_path }}/{{ mariadb_version | split('.') | first }} +mariadb_state: present mariadb_root_password: ~ mariadb_database: ~ @@ -13,10 +14,24 @@ mariadb_container_base_environment: MARIADB_ROOT_PASSWORD: "{{ mariadb_root_password }}" mariadb_container_extra_environment: {} -mariadb_container_name: mariadb -mariadb_container_image_name: docker.io/mariadb +mariadb_container_image_registry: docker.io +mariadb_container_image_namespace: ~ +mariadb_container_image_name: mariadb mariadb_container_image_tag: ~ -mariadb_container_image: "{{ mariadb_container_image_name }}:{{ mariadb_container_image_tag | default(mariadb_version, true) }}" +mariadb_container_image: >-2 + {{ + ([ + mariadb_container_image_registry | default([], true), + mariadb_container_image_namespace | default([], true), + mariadb_container_image_name, + ] | flatten | join('/')) + + ':' + mariadb_container_image_tag | default(mariadb_version, true) + }} +mariadb_container_image_source: pull +mariadb_container_image_force_source: >-2 + {{ mariadb_container_image_tag | default(false, true) | bool }} + +mariadb_container_name: mariadb mariadb_container_base_volumes: - "{{ mariadb_data_path }}:{{ mariadb_container_data_path }}:z" mariadb_container_extra_volumes: [] @@ -30,3 +45,5 @@ mariadb_container_environment: >-2 if (mariadb_database and mariadb_username and mariadb_password) else {}, recursive=True) | combine(mariadb_container_extra_environment) }} +mariadb_container_state: >-2 + {{ (mariadb_state == 'present') | ternary('started', 'absent') }} diff --git a/roles/mariadb/tasks/main.yml b/roles/mariadb/tasks/main.yml index 885f52c..5b2a8b7 100644 --- a/roles/mariadb/tasks/main.yml +++ b/roles/mariadb/tasks/main.yml @@ -1,20 +1,21 @@ --- -- name: Ensure mariaDB container image is present on host +- name: Ensure mariadb container image '{{ mariadb_container_image }}' is {{ mariadb_state }} community.docker.docker_image: name: "{{ mariadb_container_image }}" - state: present - source: pull + state: "{{ mariadb_state }}" + source: "{{ mariadb_container_image_source }}" + force_source: "{{ mariadb_container_image_force_source }}" -- name: Ensure mariaDB {{ mariadb_version }} is running as '{{ mariadb_container_name }}' +- name: Ensure mariadb container '{{ mariadb_container_name }}' is {{ mariadb_container_state }} community.docker.docker_container: name: "{{ mariadb_container_name }}" image: "{{ mariadb_container_image }}" env: "{{ mariadb_container_environment }}" - ports: "{{ mariadb_container_ports }}" - labels: "{{ mariadb_container_labels }}" + ports: "{{ mariadb_container_ports | default(omit, true) }}" + labels: "{{ mariadb_container_labels | default(omit, true) }}" volumes: "{{ mariadb_container_volumes }}" networks: "{{ mariadb_container_networks | default(omit, true) }}" etc_hosts: "{{ mariadb_container_etc_hosts | default(omit, true) }}" purge_networks: "{{ mariadb_container_purge_networks | default(omit, true) }}" restart_policy: "{{ mariadb_container_restart_policy }}" - state: started + state: "{{ mariadb_container_state }}"