Add rhel based distro support
Move from testinfra to ansible verifier.
This commit is contained in:
parent
4eeaaa139c
commit
90c31bf3c2
|
|
@ -9,7 +9,7 @@ on:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
molecule-distrib-pkg:
|
molecule-distrib-pkg:
|
||||||
name: Molecule
|
name: Default
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
@ -21,6 +21,12 @@ jobs:
|
||||||
- debian-10
|
- debian-10
|
||||||
- debian-11
|
- debian-11
|
||||||
- debian-sid
|
- debian-sid
|
||||||
|
- fedora-36
|
||||||
|
- fedora-37
|
||||||
|
- almalinux-8
|
||||||
|
- almalinux-9
|
||||||
|
- rockylinux-8
|
||||||
|
- rockylinux-9
|
||||||
playbook:
|
playbook:
|
||||||
- converge.yml
|
- converge.yml
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -45,7 +51,7 @@ jobs:
|
||||||
MOLECULE_PLAYBOOK: ${{ matrix.playbook }}
|
MOLECULE_PLAYBOOK: ${{ matrix.playbook }}
|
||||||
|
|
||||||
molecule-mdbf-pkg:
|
molecule-mdbf-pkg:
|
||||||
name: Molecule (MDBF)
|
name: MDBF
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
@ -57,8 +63,14 @@ jobs:
|
||||||
- debian-10
|
- debian-10
|
||||||
- debian-11
|
- debian-11
|
||||||
- debian-sid
|
- debian-sid
|
||||||
|
- fedora-36
|
||||||
|
# - fedora-37
|
||||||
|
- almalinux-8
|
||||||
|
- almalinux-9
|
||||||
|
- rockylinux-8
|
||||||
|
- rockylinux-9
|
||||||
playbook:
|
playbook:
|
||||||
- converge-mdbf.yml
|
- mdbf.yml
|
||||||
mariadb-version:
|
mariadb-version:
|
||||||
- "10.3"
|
- "10.3"
|
||||||
- "10.4"
|
- "10.4"
|
||||||
|
|
@ -89,18 +101,20 @@ jobs:
|
||||||
mariadb-version: 10.3
|
mariadb-version: 10.3
|
||||||
- distro: debian-sid
|
- distro: debian-sid
|
||||||
mariadb-version: 10.4
|
mariadb-version: 10.4
|
||||||
- distro: debian-sid
|
- distro: fedora-36
|
||||||
|
mariadb-version: 10.3
|
||||||
|
- distro: fedora-36
|
||||||
|
mariadb-version: 10.4
|
||||||
|
- distro: fedora-36
|
||||||
mariadb-version: 10.5
|
mariadb-version: 10.5
|
||||||
- distro: debian-sid
|
- distro: almalinux-9
|
||||||
mariadb-version: 10.6
|
mariadb-version: 10.3
|
||||||
- distro: debian-sid
|
- distro: almalinux-9
|
||||||
mariadb-version: 10.7
|
mariadb-version: 10.4
|
||||||
- distro: debian-sid
|
- distro: rockylinux-9
|
||||||
mariadb-version: 10.8
|
mariadb-version: 10.3
|
||||||
- distro: debian-sid
|
- distro: rockylinux-9
|
||||||
mariadb-version: 10.9
|
mariadb-version: 10.4
|
||||||
- distro: debian-sid
|
|
||||||
mariadb-version: 10.10
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
|
||||||
15
README.md
15
README.md
|
|
@ -71,21 +71,24 @@ Foundation package and it should be easy to change them all (see
|
||||||
|
|
||||||
#### Basic settings
|
#### Basic settings
|
||||||
|
|
||||||
|
`default value depends on OS` means that the value is overrided at OS level, see
|
||||||
|
[`vars`](./vars).
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
mariadb_config_file: /etc/mysql/mariadb.cnf
|
mariadb_config_file: "default value depends on OS"
|
||||||
mariadb_datadir: /var/lib/mysql
|
mariadb_data_dir: "default value depends on OS"
|
||||||
mariadb_port: 3306
|
mariadb_port: 3306
|
||||||
mariadb_bind_address: 127.0.0.1
|
mariadb_bind_address: 127.0.0.1
|
||||||
mariadb_unix_socket: /run/mysqld/mysqld.sock
|
mariadb_unix_socket: "default value depends on OS"
|
||||||
```
|
```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
mariadb_basic_settings_raw: |
|
mariadb_basic_settings_raw: |
|
||||||
user = mysql
|
user = mysql
|
||||||
pid-file = /run/mysqld/mysqld.pid
|
pid-file = {{ mariadb_pid_file }}
|
||||||
socket = {{ mariadb_unix_socket }}
|
socket = {{ mariadb_unix_socket }}
|
||||||
basedir = /usr
|
basedir = /usr
|
||||||
datadir = {{ mariadb_datadir }}
|
datadir = {{ mariadb_data_dir }}
|
||||||
tmpdir = /tmp
|
tmpdir = /tmp
|
||||||
lc-messages-dir = /usr/share/mysql
|
lc-messages-dir = /usr/share/mysql
|
||||||
lc_messages = en_US
|
lc_messages = en_US
|
||||||
|
|
@ -120,7 +123,7 @@ mariadb_query_cache_raw: |
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
mariadb_logging_raw: |
|
mariadb_logging_raw: |
|
||||||
log_error = /var/log/mysql/error.log
|
log_error = "default value depends on OS"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Character sets
|
#### Character sets
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
---
|
---
|
||||||
|
# Python interpreter needs to be specified (pb on Fedora 37 that has python
|
||||||
|
# 3.11) see: https://github.com/ansible/containmint/issues/9
|
||||||
|
ansible_python_interpreter: /usr/bin/python3
|
||||||
# Configure the following to use official MariaDB repository
|
# Configure the following to use official MariaDB repository
|
||||||
# see: https://downloads.mariadb.org/mariadb/repositories
|
# see: https://downloads.mariadb.org/mariadb/repositories
|
||||||
mariadb_use_official_repo: false
|
mariadb_use_official_repo: false
|
||||||
mariadb_use_official_repo_url: https://deb.mariadb.org
|
mariadb_use_official_repo_url: https://deb.mariadb.org
|
||||||
mariadb_use_official_repo_version: 10.5
|
mariadb_use_official_repo_version: 10.6
|
||||||
|
|
||||||
mariadb_enabled_on_startup: true
|
mariadb_enabled_on_startup: true
|
||||||
# The following is set to true by default but you may consider setting it to
|
# The following is set to true by default but you may consider setting it to
|
||||||
|
|
@ -14,18 +17,21 @@ mariadb_can_restart: true
|
||||||
mariadb_overwrite_global_config_file: true
|
mariadb_overwrite_global_config_file: true
|
||||||
|
|
||||||
# MariaDB configuration file
|
# MariaDB configuration file
|
||||||
mariadb_config_file: /etc/mysql/mariadb.cnf
|
mariadb_user: "default value depends on OS"
|
||||||
|
mariadb_config_file: "default value depends on OS"
|
||||||
# Basic settings
|
# Basic settings
|
||||||
mariadb_datadir: /var/lib/mysql
|
mariadb_data_dir: "default value depends on OS"
|
||||||
mariadb_port: 3306
|
mariadb_port: 3306
|
||||||
mariadb_bind_address: 127.0.0.1
|
mariadb_bind_address: 127.0.0.1
|
||||||
mariadb_unix_socket: /run/mysqld/mysqld.sock
|
mariadb_pid_file: "default value depends on OS"
|
||||||
|
mariadb_unix_socket: "default value depends on OS"
|
||||||
|
mariadb_log_error_file: "default value depends on OS"
|
||||||
mariadb_basic_settings_raw: |
|
mariadb_basic_settings_raw: |
|
||||||
user = mysql
|
user = {{ mariadb_user }}
|
||||||
pid-file = /run/mysqld/mysqld.pid
|
pid-file = {{ mariadb_pid_file }}
|
||||||
socket = {{ mariadb_unix_socket }}
|
socket = {{ mariadb_unix_socket }}
|
||||||
basedir = /usr
|
basedir = /usr
|
||||||
datadir = {{ mariadb_datadir }}
|
datadir = {{ mariadb_data_dir }}
|
||||||
tmpdir = /tmp
|
tmpdir = /tmp
|
||||||
lc-messages-dir = /usr/share/mysql
|
lc-messages-dir = /usr/share/mysql
|
||||||
lc_messages = en_US
|
lc_messages = en_US
|
||||||
|
|
@ -52,7 +58,7 @@ mariadb_query_cache_raw: |
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
mariadb_logging_raw: |
|
mariadb_logging_raw: |
|
||||||
log_error = /var/log/mysql/error.log
|
log_error = {{ mariadb_log_error_file }}
|
||||||
|
|
||||||
# Character sets
|
# Character sets
|
||||||
mariadb_character_sets_raw: |
|
mariadb_character_sets_raw: |
|
||||||
|
|
|
||||||
|
|
@ -16,4 +16,10 @@ provisioner:
|
||||||
playbooks:
|
playbooks:
|
||||||
converge: ${MOLECULE_PLAYBOOK:-converge.yml}
|
converge: ${MOLECULE_PLAYBOOK:-converge.yml}
|
||||||
verifier:
|
verifier:
|
||||||
name: testinfra
|
name: ansible
|
||||||
|
scenario:
|
||||||
|
test_sequence:
|
||||||
|
- create
|
||||||
|
- converge
|
||||||
|
- idempotence
|
||||||
|
- verify
|
||||||
|
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
||||||
import os
|
|
||||||
|
|
||||||
# pylint: disable=import-error
|
|
||||||
import testinfra.utils.ansible_runner
|
|
||||||
|
|
||||||
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
|
||||||
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
|
||||||
|
|
||||||
|
|
||||||
def test_passwd_file(host):
|
|
||||||
passwd = host.file("/etc/passwd")
|
|
||||||
assert passwd.contains("mysql")
|
|
||||||
assert passwd.user == "root"
|
|
||||||
assert passwd.group == "root"
|
|
||||||
|
|
||||||
|
|
||||||
def test_mariadb_is_installed(host):
|
|
||||||
package = host.package("mariadb-server")
|
|
||||||
assert package.is_installed
|
|
||||||
|
|
||||||
|
|
||||||
def test_ensure_mariadb_is_listening_on_requiered_port(host):
|
|
||||||
assert host.socket("tcp://0.0.0.0:3306").is_listening
|
|
||||||
|
|
||||||
|
|
||||||
def test_mariadb_enabled_and_running(host):
|
|
||||||
assert host.service("mariadb").is_running
|
|
||||||
assert host.service("mariadb").is_enabled
|
|
||||||
|
|
||||||
|
|
||||||
def test_ensure_custom_config_is_applied(host):
|
|
||||||
config = host.file("/etc/mysql/mariadb.cnf")
|
|
||||||
assert config.contains("datadir")
|
|
||||||
assert config.user == "root"
|
|
||||||
assert config.group == "root"
|
|
||||||
assert config.mode == 0o644
|
|
||||||
|
|
||||||
|
|
||||||
def test_ensure_innodb_is_enabled(host):
|
|
||||||
assert host.run("mariadb -Bse 'SHOW ENGINES' |\
|
|
||||||
grep -qE '^InnoDB.DEFAULT.*YES.YES.YES$'").rc == 0
|
|
||||||
|
|
||||||
|
|
||||||
def test_ensure_system_db_exist(host):
|
|
||||||
assert host.run("mariadb -Bse 'SHOW DATABASES' |\
|
|
||||||
grep -q '^mysql$'").rc == 0
|
|
||||||
assert host.run("mariadb -Bse 'SHOW DATABASES' |\
|
|
||||||
grep -q '^information_schema$'").rc == 0
|
|
||||||
assert host.run("mariadb -Bse 'SHOW DATABASES' |\
|
|
||||||
grep -q '^performance_schema$'").rc == 0
|
|
||||||
|
|
||||||
|
|
||||||
def test_ensure_test_db_exist(host):
|
|
||||||
assert host.run("mariadb -Bse 'SHOW DATABASES' |\
|
|
||||||
grep -q '^db1'").rc == 0
|
|
||||||
assert host.run("mariadb -Bse 'SHOW DATABASES' |\
|
|
||||||
grep -q '^db2'").rc == 0
|
|
||||||
|
|
||||||
|
|
||||||
def test_some_sql_queries(host):
|
|
||||||
assert host.run("mariadb -e 'CREATE DATABASE db'").rc == 0
|
|
||||||
assert host.run("mariadb -e 'CREATE TABLE\
|
|
||||||
db.t_innodb(a1 SERIAL, c1 CHAR(8)) ENGINE=InnoDB;\
|
|
||||||
INSERT INTO db.t_innodb VALUES (1,\"foo\"),(2,\"bar\")'").rc == 0
|
|
||||||
assert host.run("mariadb -e 'CREATE FUNCTION db.f()\
|
|
||||||
RETURNS INT DETERMINISTIC RETURN 1'").rc == 0
|
|
||||||
assert host.run("mariadb -e 'SHOW TABLES IN db'").rc == 0
|
|
||||||
assert host.run("mariadb -e 'SELECT * FROM db.t_innodb;\
|
|
||||||
INSERT INTO db.t_innodb VALUES (3,\"foo\"),(4,\"bar\")'").rc == 0
|
|
||||||
assert host.run("mariadb -e 'SELECT db.f()'").rc == 0
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
../../../vars/Debian.yml
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
../../../vars/RedHat.yml
|
||||||
|
|
@ -0,0 +1,116 @@
|
||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
gather_facts: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Load OS-specific vars
|
||||||
|
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
|
||||||
|
vars:
|
||||||
|
params:
|
||||||
|
files:
|
||||||
|
- "{{ ansible_distribution }}.yml"
|
||||||
|
- "{{ ansible_os_family }}.yml"
|
||||||
|
paths:
|
||||||
|
- "vars"
|
||||||
|
|
||||||
|
- name: Gather package facts
|
||||||
|
ansible.builtin.package_facts:
|
||||||
|
manager: auto
|
||||||
|
|
||||||
|
- name: Verify Packages
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that: "'mariadb-server' in ansible_facts.packages|lower"
|
||||||
|
|
||||||
|
- name: Register {{ mariadb_config_file }}
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ mariadb_config_file }}"
|
||||||
|
register: conf
|
||||||
|
|
||||||
|
- name: Check {{ mariadb_config_file }}
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- conf.stat.exists is true
|
||||||
|
- conf.stat.pw_name == 'root'
|
||||||
|
- conf.stat.gr_name == 'root'
|
||||||
|
|
||||||
|
- name: Register {{ mariadb_data_dir }}
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ mariadb_data_dir }}"
|
||||||
|
register: datadir
|
||||||
|
|
||||||
|
- name: Check {{ mariadb_data_dir }}
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- datadir.stat.isdir is true
|
||||||
|
- datadir.stat.pw_name == "{{ mariadb_user }}"
|
||||||
|
- datadir.stat.gr_name == "{{ mariadb_user }}"
|
||||||
|
|
||||||
|
- name: Register {{ mariadb_log_dir }}
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ mariadb_log_dir }}"
|
||||||
|
register: logdir
|
||||||
|
|
||||||
|
- name: Check {{ mariadb_log_dir }}
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- logdir.stat.isdir is true
|
||||||
|
- logdir.stat.pw_name == "{{ mariadb_user }}"
|
||||||
|
- logdir.stat.gr_name == "{{ mariadb_user }}"
|
||||||
|
|
||||||
|
- name: Get mariadb service status
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: "mariadb"
|
||||||
|
register: mariadb_service
|
||||||
|
|
||||||
|
- name: Check that mariadb service is active
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- mariadb_service.status.ActiveState == 'active'
|
||||||
|
|
||||||
|
- name: Check that 127.0.0.1:3306 is listening
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
port: 3306
|
||||||
|
timeout: 2
|
||||||
|
|
||||||
|
- name: Get MariaDB version
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
mariadb -Bse 'STATUS' | grep "^Server version:"
|
||||||
|
register: version
|
||||||
|
when: "{{ lookup('env', 'MARIADB_VERSION') }}"
|
||||||
|
|
||||||
|
- name: Check MariaDB version
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- "'{{ lookup('env', 'MARIADB_VERSION') }}' in version.stdout"
|
||||||
|
msg: "{{ version.stdout }}"
|
||||||
|
when: "{{ lookup('env', 'MARIADB_VERSION') }}"
|
||||||
|
|
||||||
|
- name: Check that Innodb engine is enabled (and default)
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
mariadb -Bse 'SHOW ENGINES' | grep -qE '^InnoDB.DEFAULT.*YES.YES.YES$'
|
||||||
|
|
||||||
|
- name: Check that default db exist
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
mariadb -Bse 'SHOW DATABASES' | grep -q '^{{ item }}$'
|
||||||
|
loop:
|
||||||
|
- mysql
|
||||||
|
- information_schema
|
||||||
|
- performance_schema
|
||||||
|
|
||||||
|
- name: Check that test db exist
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
mariadb -Bse 'SHOW DATABASES' | grep -q '^{{ item }}$'
|
||||||
|
loop:
|
||||||
|
- db1
|
||||||
|
- db2
|
||||||
|
|
||||||
|
- name: Do some SQL queries
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
mariadb -Bse 'DROP DATABASE IF EXIST db'
|
||||||
|
mariadb -Bse 'CREATE DATABASE db'
|
||||||
|
mariadb -e 'CREATE TABLE db.t_innodb(a1 SERIAL, c1 CHAR(8)) ENGINE=InnoDB; INSERT INTO db.t_innodb VALUES (1,"foo"),(2,"bar")'
|
||||||
|
mariadb -e 'CREATE FUNCTION db.f() RETURNS INT DETERMINISTIC RETURN 1'
|
||||||
|
mariadb -e 'SHOW TABLES IN db'
|
||||||
|
mariadb -e 'SELECT * FROM db.t_innodb; INSERT INTO db.t_innodb VALUES (3,"foo"),(4,"bar")'
|
||||||
|
mariadb -e 'SELECT db.f()'
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
ansible
|
ansible
|
||||||
molecule==4.0.*
|
molecule==4.0.*
|
||||||
molecule-podman
|
molecule-podman
|
||||||
pytest-testinfra
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
---
|
---
|
||||||
- name: Install cron package
|
- name: Install cron package
|
||||||
ansible.builtin.apt:
|
ansible.builtin.package:
|
||||||
package:
|
name: "{{ mariadb_cron_package_name }}"
|
||||||
- cron
|
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: Deploy DB dump script
|
- name: Deploy DB dump script
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,16 @@
|
||||||
force: "{{ mariadb_overwrite_global_config_file }}"
|
force: "{{ mariadb_overwrite_global_config_file }}"
|
||||||
notify: Restart mariadb
|
notify: Restart mariadb
|
||||||
|
|
||||||
- name: Create datadir if it does not exist
|
- name: Make sure datadir and log dir exist
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ mariadb_datadir }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: mysql
|
owner: "{{ mariadb_user }}"
|
||||||
group: mysql
|
group: "{{ mariadb_user }}"
|
||||||
mode: 0755
|
mode: 0755
|
||||||
|
loop:
|
||||||
|
- "{{ mariadb_data_dir }}"
|
||||||
|
- "{{ mariadb_log_dir }}"
|
||||||
|
|
||||||
- name: Ensure MariaDB is started and enabled on boot
|
- name: Ensure MariaDB is started and enabled on boot
|
||||||
ansible.builtin.service:
|
ansible.builtin.service:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,21 @@
|
||||||
---
|
---
|
||||||
- name: include task setup.yml
|
- name: Load OS-specific vars
|
||||||
import_tasks: setup.yml
|
ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
|
||||||
|
vars:
|
||||||
|
params:
|
||||||
|
files:
|
||||||
|
- "{{ ansible_distribution }}.yml"
|
||||||
|
- "{{ ansible_os_family }}.yml"
|
||||||
|
paths:
|
||||||
|
- "vars"
|
||||||
|
|
||||||
|
- name: include task setup_debian.yml
|
||||||
|
import_tasks: setup_debian.yml
|
||||||
|
when: ansible_os_family == "Debian"
|
||||||
|
|
||||||
|
- name: include task setup_redhat.yml
|
||||||
|
import_tasks: setup_redhat.yml
|
||||||
|
when: ansible_os_family == "RedHat"
|
||||||
|
|
||||||
- name: include task configure.yml
|
- name: include task configure.yml
|
||||||
import_tasks: configure.yml
|
import_tasks: configure.yml
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,32 @@
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
when: mariadb_use_official_repo
|
when: mariadb_use_official_repo
|
||||||
|
|
||||||
|
- name: Determine distribution name (Debian sid pb)
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
distribution: "{% if 'n/a' in ansible_distribution_release %}sid{% else %}{{ ansible_distribution_release }}{% endif %}"
|
||||||
|
|
||||||
- name: Setup mariadb repository sourcelist entry
|
- name: Setup mariadb repository sourcelist entry
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
dest: /etc/apt/sources.list.d/mariadb.list
|
dest: /etc/apt/sources.list.d/mariadb.list
|
||||||
content: |
|
content: |
|
||||||
deb {{ mariadb_use_official_repo_url }}/{{ mariadb_use_official_repo_version }}/{{ ansible_distribution | lower() }} {{ ansible_distribution_release }} main
|
# Ansible managed
|
||||||
|
deb {{ mariadb_use_official_repo_url }}/{{ mariadb_use_official_repo_version }}/{{ ansible_distribution | lower() }} {{ distribution }} main
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
when: mariadb_use_official_repo
|
||||||
|
|
||||||
|
- name: Prefer MariaDB repo over Debian repo
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /etc/apt/preferences.d/release
|
||||||
|
content: |
|
||||||
|
# Ansible managed
|
||||||
|
Package: *
|
||||||
|
Pin: origin {{ mariadb_use_official_repo_url | urlsplit('hostname') }}
|
||||||
|
Pin-Priority: 1000
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
when: mariadb_use_official_repo
|
when: mariadb_use_official_repo
|
||||||
|
|
||||||
- name: Install packages
|
- name: Install packages
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
# //TEMP find a way to handle multiarch (see mirror.mariadb.org).
|
||||||
|
- name: Setup mariadb repository
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /etc/yum.repos.d/MariaDB.repo
|
||||||
|
content: |
|
||||||
|
# https://mariadb.org/download/
|
||||||
|
[mariadb]
|
||||||
|
name = MariaDB
|
||||||
|
{% if ansible_distribution == "Fedora" %}
|
||||||
|
baseurl = https://yum.mariadb.org/{{ mariadb_use_official_repo_version }}/fedora{{ ansible_distribution_major_version }}-amd64
|
||||||
|
{% else %}
|
||||||
|
baseurl = https://yum.mariadb.org/{{ mariadb_use_official_repo_version }}/rhel{{ ansible_distribution_major_version }}-amd64
|
||||||
|
{% endif %}
|
||||||
|
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
|
||||||
|
module_hotfixes = 1
|
||||||
|
gpgcheck = 1
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
when: mariadb_use_official_repo
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name:
|
||||||
|
- mariadb-server
|
||||||
|
- python3-PyMySQL
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Check if mariadb command exists
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: /usr/bin/mariadb
|
||||||
|
register: mariadb_cmd
|
||||||
|
|
||||||
|
- name: Make sure that mariadb command exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
src: /usr/bin/mysql
|
||||||
|
dest: /usr/bin/mariadb
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
state: link
|
||||||
|
when: mariadb_cmd.stat.exists is false
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
mariadb_user: mysql
|
||||||
|
mariadb_config_file: "/etc/mysql/mariadb.cnf"
|
||||||
|
mariadb_data_dir: "/var/lib/mysql"
|
||||||
|
mariadb_pid_file: "/run/mysqld/mysqld.pid"
|
||||||
|
mariadb_unix_socket: "/run/mysqld/mysqld.sock"
|
||||||
|
mariadb_log_dir: "/var/log/mysql"
|
||||||
|
mariadb_log_error_file: "{{ mariadb_log_dir }}/error.log"
|
||||||
|
mariadb_cron_package_name: "cron"
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
mariadb_user: mysql
|
||||||
|
mariadb_config_file: "/etc/my.cnf.d/mariadb-server.cnf"
|
||||||
|
mariadb_data_dir: "/var/lib/mysql"
|
||||||
|
mariadb_pid_file: "/run/mysqld.pid"
|
||||||
|
mariadb_unix_socket: "/var/lib/mysql/mysql.sock"
|
||||||
|
mariadb_log_dir: "/var/log/mariadb"
|
||||||
|
mariadb_log_error_file: "{{ mariadb_log_dir }}/error.log"
|
||||||
|
mariadb_cron_package_name: "cronie"
|
||||||
Loading…
Reference in New Issue