diff --git a/defaults/main.yml b/defaults/main.yml index 619ed2f..cfa3c14 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,10 +1,13 @@ # Standards: 1.2 --- +# @var mariadb_installation:description: Select installation method, could be native or docker +mariadb_installation: native + # @var mariadb_upstream_repo:description: Install from upstream repository mariadb_upstream_repo: True # @var mariadb_upstream_version:description: Upstream repo version -mariadb_upstream_version: 10.6 +mariadb_upstream_version: 11.1 # @var mariadb_upstream_mirror:description: Upstream repo mirror URL mariadb_upstream_mirror: http://mirror.23m.com/mariadb/repo @@ -12,6 +15,83 @@ mariadb_upstream_mirror: http://mirror.23m.com/mariadb/repo # @var mariadb_upstream_arch:description: Upstream repo architecture mariadb_upstream_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}" +# @var mariadb_image:description: Docker image to use for deployment +mariadb_image: "mariadb:{{ mariadb_upstream_version }}" + +# @var mariadb_pull_image:description: Pull image as part of the tasks +mariadb_pull_image: True + +# @var mariadb_network:description: Optional docker network to attach +mariadb_network: + +# @var mariadb_default_publish:description: List of default port publishing for docker +# @var mariadb_default_publish:example: > +# mariadb_default_publish: +# - 127.0.0.1:3306:3306 +# @end +mariadb_default_publish: [] + +# @var mariadb_extra_publish:description: List of extra port publishing for docker +# @var mariadb_extra_publish:example: > +# mariadb_extra_publish: +# - 127.0.0.1:3306:3306 +# @end +mariadb_extra_publish: [] + +# @var mariadb_default_labels:description: List of default labels to assign to docker +mariadb_default_labels: [] + +# @var mariadb_extra_labels:description: List of extra labels to assign to docker +mariadb_extra_labels: [] + +# @var mariadb_default_folders:description: List of default folders to create +mariadb_default_folders: + - /etc/systemd/system/mariadb.service.d + - /etc/mysql + - /etc/mysql/mariadb.conf.d + +# @var mariadb_extra_folders:description: List of extra folders to create +# @var mariadb_extra_folders:example: > +# mariadb_extra_folders: +# - /path/to/host/folder1 +# - /path/to/host/folder2 +# - /path/to/host/folder3 +# @end +mariadb_extra_folders: [] + +# @var mariadb_default_volumes:description: List of default volumes to mount for docker +mariadb_default_volumes: + - /var/lib/mysql:/var/lib/mysql + +# @var mariadb_extra_volumes:description: List of extra volumes to mount for docker +# @var mariadb_extra_volumes:example: > +# mariadb_extra_volumes: +# - /path/to/host/folder1:/path/within/container1 +# - /path/to/host/folder2:/path/within/container2 +# - /path/to/host/folder3:/path/within/container3 +# @end +mariadb_extra_volumes: [] + +# @var mariadb_memory_limit:description: Memory limit with Docker deployment +# @var mariadb_memory_limit:example: $ "1024m" +mariadb_memory_limit: + +# @var mariadb_memory_swap:description: Swap usage with Docker deployment +# @var mariadb_memory_swap:example: $ "2048m" +mariadb_memory_swap: + +# @var mariadb_memory_soft_limit:description: Soft memory limit with Docker deployment +# @var mariadb_memory_soft_limit:example: $ "512m" +mariadb_memory_soft_limit: + +# @var mariadb_cpu_shares:description: CPU shares with Docker deployment +# @var mariadb_cpu_shares:example: $ "512" +mariadb_cpu_shares: + +# @var mariadb_number_of_cpus:description: Number of CPUs with Docker deployment +# @var mariadb_number_of_cpus:example: $ "1.0" +mariadb_number_of_cpus: + # @var mariadb_keyring:description: Path for the repository keyring mariadb_keyring: /usr/share/keyrings/mariadb-archive-keyring.gpg @@ -108,12 +188,21 @@ mariadb_root_username: root # @var mariadb_root_password:description: Password for the root user mariadb_root_password: root +# @var mariadb_username:description: Username used within docker deployment +mariadb_username: + +# @var mariadb_password:description: Password used within docker deployment +mariadb_password: + +# @var mariadb_database:description: Database used within docker deployment +mariadb_database: + # @var mariadb_root_hosts:description: Allowed hosts for root user mariadb_root_hosts: - localhost - 127.0.0.1 -# @var mariadb_global_databases:description: List of databases to create +# @var mariadb_global_databases:description: List of databases to create for native installation # @var mariadb_global_databases:example: > # mariadb_global_databases: # - name: example @@ -125,7 +214,7 @@ mariadb_root_hosts: # @end mariadb_global_databases: [] -# @var mariadb_extra_databases:description: List of additional databases to create +# @var mariadb_extra_databases:description: List of additional databases to create for native installation # @var mariadb_extra_databases:example: > # mariadb_extra_databases: # - name: example @@ -137,7 +226,7 @@ mariadb_global_databases: [] # @end mariadb_extra_databases: [] -# @var mariadb_global_users:description: List of users to create +# @var mariadb_global_users:description: List of users to create for native installation # @var mariadb_global_users:example: > # mariadb_global_users: # - name: example @@ -150,7 +239,7 @@ mariadb_extra_databases: [] # @end mariadb_global_users: [] -# @var mariadb_extra_users:description: List of additional users to create +# @var mariadb_extra_users:description: List of additional users to create for native installation # @var mariadb_extra_users:example: > # mariadb_extra_users: # - name: example @@ -193,7 +282,7 @@ mariadb_backup_addition_script: mariadb_backup_cron: daily # @var mariadb_backup_ignore:description: Ignoring this filter via grep on database selection -mariadb_backup_ignore: (_backup|mysql|information_schema|performance_schema) +mariadb_backup_ignore: (_backup|mysql|sys|information_schema|performance_schema) # @var mariadb_backup_formatting:description: Date format for the backup folder name mariadb_backup_formatting: "%F" @@ -208,6 +297,55 @@ mariadb_exporter_version: 0.15.0 # @var mariadb_exporter_download:description: URL to the archive of the release to install mariadb_exporter_download: "https://github.com/prometheus/mysqld_exporter/releases/download/v{{ mariadb_exporter_version }}/mysqld_exporter-{{ mariadb_exporter_version }}.linux-amd64.tar.gz" +# @var mariadb_exporter_image:description: Docker image to use for deployment on OAuth2 Proxy +mariadb_exporter_image: "prom/mysqld-exporter:v{{ mariadb_exporter_version }}" + +# @var mariadb_exporter_pull_image:description: Pull image as part of the tasks +mariadb_exporter_pull_image: True + +# @var mariadb_exporter_network:description: Optional docker network to attach on OAuth2 Proxy +mariadb_exporter_network: "{{ mariadb_network }}" + +# @var mariadb_exporter_default_publish:description: List of default port publishing for docker on OAuth2 Proxy +# @var mariadb_exporter_default_publish:example: > +# mariadb_exporter_default_publish: +# - 127.0.0.1:9104:9104 +# @end +mariadb_exporter_default_publish: [] + +# @var mariadb_exporter_extra_publish:description: List of extra port publishing for docker on OAuth2 Proxy +# @var mariadb_exporter_extra_publish:example: > +# mariadb_exporter_extra_publish: +# - 127.0.0.1:9104:9104 +# @end +mariadb_exporter_extra_publish: [] + +# @var mariadb_exporter_default_labels:description: List of default labels to assign to docker on OAuth2 Proxy +mariadb_exporter_default_labels: [] + +# @var mariadb_exporter_extra_labels:description: List of extra labels to assign to docker on OAuth2 Proxy +mariadb_exporter_extra_labels: [] + +# @var mariadb_exporter_memory_limit:description: Memory limit with Docker deployment +# @var mariadb_exporter_memory_limit:example: $ "1024m" +mariadb_exporter_memory_limit: + +# @var mariadb_exporter_memory_swap:description: Swap usage with Docker deployment +# @var mariadb_exporter_memory_swap:example: $ "2048m" +mariadb_exporter_memory_swap: + +# @var mariadb_exporter_memory_soft_limit:description: Soft memory limit with Docker deployment +# @var mariadb_exporter_memory_soft_limit:example: $ "512m" +mariadb_exporter_memory_soft_limit: + +# @var mariadb_exporter_cpu_shares:description: CPU shares with Docker deployment +# @var mariadb_exporter_cpu_shares:example: $ "512" +mariadb_exporter_cpu_shares: + +# @var mariadb_exporter_number_of_cpus:description: Number of CPUs with Docker deployment +# @var mariadb_exporter_number_of_cpus:example: $ "1.5" +mariadb_exporter_number_of_cpus: + # @var mariadb_exporter_collect_info_schema_tables:description: Enable info schema tables collector mariadb_exporter_collect_info_schema_tables: True diff --git a/tasks/exporter.yml b/tasks/exporter.yml index 9eec6cb..45fa7d6 100644 --- a/tasks/exporter.yml +++ b/tasks/exporter.yml @@ -1,6 +1,8 @@ # Standards: 1.2 --- - name: Check existing install + when: + - mariadb_installation == 'native' register: mariadb_exporter_version_check failed_when: False changed_when: False @@ -10,13 +12,17 @@ - mariadb-exporter - name: Fact version change + when: + - mariadb_installation == 'native' set_fact: mariadb_exporter_version_changed: "{{ mariadb_exporter_version_check.rc != 0 or (mariadb_exporter_version_check.stdout_lines is defined and mariadb_exporter_version not in mariadb_exporter_version_check.stdout_lines[0]) | bool }}" tags: - mariadb-exporter - name: Download release tarball - when: mariadb_exporter_version_changed + when: + - mariadb_installation == 'native' + - mariadb_exporter_version_changed unarchive: src: "{{ mariadb_exporter_download }}" dest: /usr/local/src @@ -27,7 +33,10 @@ - mariadb-exporter - name: Copy exporter binary - when: mariadb_exporter_version_changed and not ansible_check_mode + when: + - mariadb_installation == 'native' + - mariadb_exporter_version_changed + - not ansible_check_mode notify: - Restart mariadb-exporter copy: @@ -64,6 +73,25 @@ tags: - mariadb-exporter +- name: Pull docker image + when: + - mariadb_installation == 'docker' + - mariadb_exporter_pull_image + docker_image: + name: "{{ mariadb_exporter_image }}" + source: pull + tags: + - mariadb-exporter + +- name: Create docker network + when: + - mariadb_installation == 'docker' + - mariadb_exporter_network | default(False) + docker_network: + name: '{{ mariadb_exporter_network }}' + tags: + - mariadb-exporter + - name: Start mariadb-exporter service ignore_errors: "{{ ansible_check_mode }}" systemd: @@ -76,6 +104,8 @@ - mariadb-exporter - name: Remove install directory + when: + - mariadb_installation == 'native' file: path: "/usr/local/src/mysqld_exporter-{{ mariadb_exporter_version }}.linux-amd64" state: absent diff --git a/tasks/main.yml b/tasks/main.yml index e593607..2147a92 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,6 +1,8 @@ # Standards: 1.2 --- - name: Remove legacy key + when: + - mariadb_installation == 'native' apt_key: id: 177F4010FE56CA3336300305F1656F24C74CD1D8 state: absent @@ -8,6 +10,8 @@ - mariadb - name: Remove legacy repo + when: + - mariadb_installation == 'native' apt_repository: repo: "deb [arch={{ mariadb_upstream_arch }}] {{ mariadb_upstream_mirror }}/{{ mariadb_upstream_version }}/ubuntu {{ ansible_distribution_release }} main" filename: mariadb @@ -17,6 +21,8 @@ - mariadb - name: Download repo key + when: + - mariadb_installation == 'native' shell: cmd: "curl -sSL 'https://mariadb.org/mariadb_release_signing_key.asc' | gpg --dearmor --output {{ mariadb_keyring }}" creates: "{{ mariadb_keyring }}" @@ -24,6 +30,8 @@ - mariadb - name: Add apt repository + when: + - mariadb_installation == 'native' apt_repository: repo: "deb [arch={{ mariadb_upstream_arch }} signed-by={{ mariadb_keyring }}] {{ mariadb_upstream_mirror }}/{{ mariadb_upstream_version }}/ubuntu {{ ansible_distribution_release }} main" filename: mariadb @@ -33,18 +41,19 @@ - mariadb - name: Create required dirs - loop: - - /etc/systemd/system/mariadb.service.d + loop: "{{ mariadb_default_folders + mariadb_extra_folders }}" file: path: "{{ item }}" - state: directory owner: root group: root mode: u=rw,g=r,o=r + state: directory tags: - mariadb - name: Install required packages + when: + - mariadb_installation == 'native' loop: "{{ mariadb_packages }}" package: name: "{{ item }}" @@ -53,7 +62,9 @@ - mariadb - name: Create temp directory - when: mariadb_temp_directory | default(False) + when: + - mariadb_installation == 'native' + - mariadb_temp_directory | default(False) file: path: "{{ mariadb_temp_directory }}" owner: root @@ -64,11 +75,14 @@ - mariadb - name: Fix data permissions - when: not ansible_check_mode + when: + - not ansible_check_mode file: path: /var/lib/mysql - owner: mysql - group: mysql + owner: "{{ 'mysql' if mariadb_installation == 'native' else '999' }}" + group: "{{ 'mysql' if mariadb_installation == 'native' else '999' }}" + mode: u=rwx,g=rx,o=rx + state: directory tags: - mariadb @@ -76,7 +90,8 @@ loop: "{{ mariadb_extra_configs }}" loop_control: label: "{{ item.name }}" - when: item.state | default("present") == "present" + when: + - item.state | default("present") == "present" notify: - Restart mariadb copy: @@ -92,7 +107,8 @@ loop: "{{ mariadb_extra_configs }}" loop_control: label: "{{ item.name }}" - when: item.state | default("present") == "absent" + when: + - item.state | default("present") == "absent" notify: - Restart mariadb file: @@ -102,7 +118,9 @@ - mariadb - name: Write galera config - when: mariadb_galera_enabled + when: + - mariadb_installation == 'native' + - mariadb_galera_enabled notify: - Restart mariadb template: @@ -115,6 +133,8 @@ - mariadb - name: Write override config + when: + - mariadb_installation == 'native' notify: - Restart mariadb template: @@ -127,6 +147,8 @@ - mariadb - name: Write service override + when: + - mariadb_installation == 'native' notify: - Restart mariadb template: @@ -138,6 +160,53 @@ tags: - mariadb +- name: Write default config + when: + - mariadb_installation == 'docker' + notify: + - Restart mariadb + template: + src: default.j2 + dest: /etc/default/mariadb + owner: root + group: root + mode: u=rw,g=r,o=r + tags: + - mariadb + +- name: Write service file + when: + - mariadb_installation == 'docker' + notify: + - Restart mariadb + template: + src: service.j2 + dest: /etc/systemd/system/mariadb.service + owner: root + group: root + mode: u=rw,g=r,o=r + tags: + - mariadb + +- name: Pull docker image + when: + - mariadb_installation == 'docker' + - mariadb_pull_image + docker_image: + name: "{{ mariadb_image }}" + source: pull + tags: + - mariadb + +- name: Create docker network + when: + - mariadb_installation == 'docker' + - mariadb_network | default(False) + docker_network: + name: '{{ mariadb_network }}' + tags: + - mariadb + - name: Start mariadb service ignore_errors: "{{ ansible_check_mode }}" systemd: @@ -150,7 +219,9 @@ - mariadb - name: Update root account - when: not ansible_check_mode + when: + - mariadb_installation == 'native' + - not ansible_check_mode diff: False loop: "{{ mariadb_root_hosts }}" mysql_user: @@ -167,6 +238,8 @@ - mariadb - name: Write debian config + when: + - mariadb_installation == 'native' template: src: debian.j2 dest: /etc/mysql/debian.cnf @@ -177,6 +250,8 @@ - mariadb - name: Write auth config + when: + - mariadb_installation == 'native' template: src: auth.j2 dest: /root/.my.cnf @@ -187,7 +262,9 @@ - mariadb - name: Remove anonymous user - when: not ansible_check_mode + when: + - mariadb_installation == 'native' + - not ansible_check_mode diff: False mysql_user: name: "" @@ -198,7 +275,9 @@ - mariadb - name: Remove test database - when: not ansible_check_mode + when: + - mariadb_installation == 'native' + - not ansible_check_mode mysql_db: name: test state: absent @@ -207,14 +286,18 @@ - mariadb - name: Include galera tasks - when: mariadb_galera_enabled | default(False) + when: + - mariadb_installation == 'native' + - mariadb_galera_enabled | default(False) include_tasks: galera.yml tags: - mariadb - name: Create defined databases delegate_to: "{{ mariadb_galera_primary if mariadb_galera_enabled else inventory_hostname }}" - when: not ansible_check_mode + when: + - mariadb_installation == 'native' + - not ansible_check_mode loop: "{{ mariadb_global_databases + mariadb_extra_databases }}" loop_control: label: "{{ item.name }}" @@ -229,7 +312,9 @@ - name: Create defined users delegate_to: "{{ mariadb_galera_primary if mariadb_galera_enabled else inventory_hostname }}" - when: not ansible_check_mode + when: + - mariadb_installation == 'native' + - not ansible_check_mode diff: False loop: "{{ mariadb_global_users + mariadb_extra_users }}" loop_control: diff --git a/templates/backup.j2 b/templates/backup.j2 index af64f85..3e79b6e 100644 --- a/templates/backup.j2 +++ b/templates/backup.j2 @@ -17,7 +17,7 @@ find ${PARENT_DIRECORY} \ -ctime ${BACKUP_RETENTION} \ -exec rm -rf {} \; -DATABASES=$(mysql -e 'SHOW DATABASES;' | sed 1d | grep -v -E "{{ mariadb_backup_ignore }}") +DATABASES=$({% if mariadb_installation == "native" %}mysql{% else %}docker exec mariadb mariadb -uroot -p{{ mariadb_root_password }}{% endif %} -e 'SHOW DATABASES;' | sed 1d | grep -v -E "{{ mariadb_backup_ignore }}") if [ "${DATABASES}" == "" ]; then echo "Found no databases..." @@ -26,7 +26,7 @@ fi echo "Starting backup for mysql..." START=$(date +%s) -mysqldump --max-allowed-packet={{ mariadb_max_allowed_packet }} --single-transaction --skip_add_locks --skip-lock-tables --databases --events mysql | gzip > "${BACKUP_DIRECTORY}/mysql.sql.gz" +{% if mariadb_installation == "native" %}mysqldump{% else %}docker exec mariadb mariadb-dump -uroot -p{{ mariadb_root_password }}{% endif %} --max-allowed-packet={{ mariadb_max_allowed_packet }} --single-transaction --skip_add_locks --skip-lock-tables --databases --events mysql | gzip > "${BACKUP_DIRECTORY}/mysql.sql.gz" ENDS=$(date +%s) echo "Done within $((${ENDS}-${START}))s" @@ -34,7 +34,7 @@ for DATABASE in ${DATABASES} do echo "Starting backup for ${DATABASE}..." START=$(date +%s) - mysqldump --max-allowed-packet={{ mariadb_max_allowed_packet }} --single-transaction --skip_add_locks --skip-lock-tables --databases ${DATABASE} | gzip > "${BACKUP_DIRECTORY}/${DATABASE}.sql.gz" + {% if mariadb_installation == "native" %}mysqldump{% else %}docker exec mariadb mariadb-dump -uroot -p{{ mariadb_root_password }}{% endif %} --max-allowed-packet={{ mariadb_max_allowed_packet }} --single-transaction --skip_add_locks --skip-lock-tables --databases ${DATABASE} | gzip > "${BACKUP_DIRECTORY}/${DATABASE}.sql.gz" ENDS=$(date +%s) echo "Done within $((${ENDS}-${START}))s" done diff --git a/templates/default.j2 b/templates/default.j2 new file mode 100644 index 0000000..c81b1c5 --- /dev/null +++ b/templates/default.j2 @@ -0,0 +1,4 @@ +MARIADB_ROOT_PASSWORD={{ mariadb_root_password }} +MARIADB_USER={{ mariadb_username }} +MARIADB_PASSWORD={{ mariadb_password }} +MARIADB_DATABASE={{ mariadb_database }} diff --git a/templates/exporter/default.j2 b/templates/exporter/default.j2 index 595b5b1..60c005e 100644 --- a/templates/exporter/default.j2 +++ b/templates/exporter/default.j2 @@ -1 +1,4 @@ -ARGS="--config.my-cnf=/root/.my.cnf{{ ' --collect.info_schema.tables' if mariadb_exporter_collect_info_schema_tables else '' }}{{ ' ' + mariadb_exporter_args | join(' ') if mariadb_exporter_args | default(False) else '' }}" +ARGS="{% if mariadb_installation == "native" %}--config.my-cnf=/root/.my.cnf{% else %}--mysqld.address=mariadb:3306 --mysqld.username=root{% endif %}{{ ' --collect.info_schema.tables' if mariadb_exporter_collect_info_schema_tables else '' }}{{ ' ' + mariadb_exporter_args | join(' ') if mariadb_exporter_args | default(False) else '' }}" +{% if mariadb_installation == "docker" %} +MYSQLD_EXPORTER_PASSWORD={{ mariadb_root_password }} +{% endif %} diff --git a/templates/exporter/service.j2 b/templates/exporter/service.j2 index 4c54ec4..71885e4 100644 --- a/templates/exporter/service.j2 +++ b/templates/exporter/service.j2 @@ -1,11 +1,53 @@ [Unit] Description=Prometheus exporter for MariaDB + After=network-online.target +{% if mariadb_installation == 'docker' %} + +Wants=docker.service +After=docker.service +{% endif %} [Service] Restart=always EnvironmentFile=/etc/default/mariadb-exporter +{% if mariadb_installation == 'docker' %} + +ExecStop=/bin/sh -c '/usr/bin/docker ps | /bin/grep %p 1> /dev/null && /usr/bin/docker stop %p || true' +ExecStartPre=/bin/sh -c '/usr/bin/docker ps | /bin/grep %p 1> /dev/null && /usr/bin/docker kill %p || true' +ExecStartPre=/bin/sh -c '/usr/bin/docker ps -a | /bin/grep %p 1> /dev/null && /usr/bin/docker rm %p || true' +ExecStart=/usr/bin/docker run --rm \ + --name %p \ + --hostname %p \ + --env-file /etc/default/mariadb-exporter \ +{% if mariadb_exporter_memory_limit | default(False) %} + --memory {{ mariadb_exporter_memory_limit }} \ +{% endif %} +{% if mariadb_exporter_memory_swap | default(False) %} + --memory-swap {{ mariadb_exporter_memory_swap }} \ +{% endif %} +{% if mariadb_exporter_memory_soft_limit | default(False) %} + --memory-reservation {{ mariadb_exporter_memory_soft_limit }} \ +{% endif %} +{% if mariadb_exporter_cpu_shares | default(False) %} + --cpu-shares {{ mariadb_exporter_cpu_shares }} \ +{% endif %} +{% if mariadb_exporter_number_of_cpus | default(False) %} + --cpus {{ mariadb_exporter_number_of_cpus }} \ +{% endif %} +{% for item in mariadb_exporter_default_labels + mariadb_exporter_extra_labels %} + --label {{ item }} \ +{% endfor %} +{% if mariadb_exporter_network | default(False) %} + --network {{ mariadb_exporter_network }} \ +{% endif %} +{% for item in mariadb_exporter_default_publish + mariadb_exporter_extra_publish %} + --publish {{ item }} \ +{% endfor %} + {{ mariadb_exporter_image }} $ARGS +{% else %} ExecStart=/usr/bin/mariadb-exporter $ARGS +{% endif %} [Install] WantedBy=multi-user.target diff --git a/templates/service.j2 b/templates/service.j2 new file mode 100644 index 0000000..1ee40a7 --- /dev/null +++ b/templates/service.j2 @@ -0,0 +1,34 @@ +[Unit] +Description=MariaDB + +Wants=docker.service +After=docker.service + +[Service] +Restart=always +RestartSec=10s +EnvironmentFile=/etc/environment + +ExecStop=/bin/sh -c '/usr/bin/docker ps | /bin/grep %p 1> /dev/null && /usr/bin/docker stop %p || true' +ExecStartPre=/bin/sh -c '/usr/bin/docker ps | /bin/grep %p 1> /dev/null && /usr/bin/docker kill %p || true' +ExecStartPre=/bin/sh -c '/usr/bin/docker ps -a | /bin/grep %p 1> /dev/null && /usr/bin/docker rm %p || true' +ExecStart=/usr/bin/docker run --rm \ + --name %p \ + --hostname %p \ + --env-file /etc/default/mariadb \ +{% if mariadb_network | default(False) %} + --network {{ mariadb_network }} \ +{% endif %} +{% for item in mariadb_default_labels + mariadb_extra_labels %} + --label {{ item }} \ +{% endfor %} +{% for item in mariadb_default_volumes + mariadb_extra_volumes %} + --volume {{ item }} \ +{% endfor %} +{% for item in mariadb_default_publish + mariadb_extra_publish %} + --publish {{ item }} \ +{% endfor %} + {{ mariadb_image }} + +[Install] +WantedBy=multi-user.target