Merge pull request #37 from fauust/add-alpine

Add alpine
This commit is contained in:
faust 2023-09-26 19:42:15 +02:00 committed by GitHub
commit 35af25cbbd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 104 additions and 34 deletions

View File

@ -41,6 +41,7 @@ jobs:
- fedora-38 - fedora-38
- almalinux-9 - almalinux-9
- rockylinux-8 - rockylinux-8
- alpine-3.18
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install requirements - name: Install requirements

View File

@ -47,6 +47,8 @@ jobs:
- almalinux-9 - almalinux-9
- rockylinux-8 - rockylinux-8
- rockylinux-9 - rockylinux-9
- alpine-3.17
- alpine-3.18
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Install requirements - name: Install requirements

View File

@ -6,7 +6,7 @@
[![Cluster](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster.yml/badge.svg)](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster.yml) [![Cluster](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster.yml/badge.svg)](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster.yml)
[![Cluster MDBF](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster_mdbf.yml/badge.svg)](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster_mdbf.yml) [![Cluster MDBF](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster_mdbf.yml/badge.svg)](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster_mdbf.yml)
Install and configure MariaDB Server on Linux (Debian or RHEL based). Install and configure MariaDB Server on Linux (Debian, RHEL or Alpine linux based).
Optionally, this role also permits one to: Optionally, this role also permits one to:
@ -128,6 +128,8 @@ deployments and you are encouraged to use your own values.
[`vars`](./vars). [`vars`](./vars).
```yaml ```yaml
mariadb_user: "default value depends on OS"
mariadb_package: "default value depends on OS"
mariadb_config_file: "default value depends on OS" mariadb_config_file: "default value depends on OS"
mariadb_data_dir: "default value depends on OS" mariadb_data_dir: "default value depends on OS"
mariadb_port: 3306 mariadb_port: 3306

View File

@ -6,3 +6,6 @@
when: when:
- mariadb_can_restart - mariadb_can_restart
- not ansible_check_mode - not ansible_check_mode
- name: Setup MariaDB
ansible.builtin.command: /etc/init.d/mariadb setup

View File

@ -11,21 +11,19 @@ galaxy_info:
platforms: platforms:
- name: Debian - name: Debian
versions: versions:
- buster - all
- bullseye
- sid
- name: Ubuntu - name: Ubuntu
versions: versions:
- bionic - all
- focal
- jammy
- name: Fedora - name: Fedora
versions: versions:
- all - all
- name: EL - name: EL
versions: versions:
- 8 - all
- 9 - name: Alpine
versions:
- all
galaxy_tags: galaxy_tags:
- mariadb - mariadb
- mysql - mysql

View File

@ -3,15 +3,19 @@
hosts: all hosts: all
tasks: tasks:
- name: Get mariadb service status - name: Make sure that service is started
ansible.builtin.systemd: ansible.builtin.service:
name: "mariadb" name: mariadb
register: mariadb_service state: started
register: status
failed_when: status.changed
- name: Check that mariadb service is active - name: Make sure that service is enabled
ansible.builtin.assert: ansible.builtin.service:
that: name: mariadb
- mariadb_service.status.ActiveState == 'active' state: enabled
register: status
failed_when: status.changed
- name: Verify replication - name: Verify replication
hosts: replica hosts: replica

View File

@ -0,0 +1 @@
../../../vars/Alpine.yml

View File

@ -14,13 +14,17 @@
paths: paths:
- "vars" - "vars"
- name: Gather package facts - name: Verify pkg status
ansible.builtin.package_facts: ansible.builtin.package:
manager: auto name: "{{ mariadb_package }}"
state: present
check_mode: true
register: pkg_status
- name: Verify Packages - name: Check that {{ mariadb_package }} already installed
ansible.builtin.assert: ansible.builtin.assert:
that: "'mariadb-server' in ansible_facts.packages|lower" that: not pkg_status.changed
fail_msg: "{{ mariadb_package }} is not installed"
- name: Register {{ mariadb_config_file }} - name: Register {{ mariadb_config_file }}
ansible.builtin.stat: ansible.builtin.stat:
@ -58,15 +62,19 @@
- logdir.stat.pw_name == "{{ mariadb_user }}" - logdir.stat.pw_name == "{{ mariadb_user }}"
- logdir.stat.gr_name == "{{ mariadb_user }}" - logdir.stat.gr_name == "{{ mariadb_user }}"
- name: Get mariadb service status - name: Make sure that service is started
ansible.builtin.systemd: ansible.builtin.service:
name: "mariadb" name: mariadb
register: mariadb_service state: started
register: status
failed_when: status.changed
- name: Check that mariadb service is active - name: Make sure that service is enabled
ansible.builtin.assert: ansible.builtin.service:
that: name: mariadb
- mariadb_service.status.ActiveState == 'active' state: enabled
register: status
failed_when: status.changed
- name: Check that 127.0.0.1:3306 is listening - name: Check that 127.0.0.1:3306 is listening
ansible.builtin.wait_for: ansible.builtin.wait_for:

View File

@ -1,4 +1,5 @@
--- ---
collections: collections:
- name: community.general
- name: community.mysql - name: community.mysql
- name: containers.podman - name: containers.podman

View File

@ -17,6 +17,10 @@
ansible.builtin.import_tasks: setup_redhat.yml ansible.builtin.import_tasks: setup_redhat.yml
when: ansible_os_family == "RedHat" when: ansible_os_family == "RedHat"
- name: Include task setup_alpine.yml
ansible.builtin.import_tasks: setup_alpine.yml
when: ansible_os_family == "Alpine"
- name: Include task configure.yml - name: Include task configure.yml
ansible.builtin.import_tasks: configure.yml ansible.builtin.import_tasks: configure.yml

34
tasks/setup_alpine.yml Normal file
View File

@ -0,0 +1,34 @@
---
- name: Install packages (package)
ansible.builtin.package:
name:
- "{{ mariadb_package }}"
- mariadb-client
- py3-pymysql
state: present
notify: Setup MariaDB
- 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
- name: Ensure /run/mysqld
ansible.builtin.file:
path: /run/mysqld
state: directory
owner: mysql
group: mysql
mode: 0755
- name: Immediately setup MariaDB (necessary for configuration)
ansible.builtin.meta: flush_handlers

View File

@ -75,10 +75,10 @@
group: root group: root
mode: "0644" mode: "0644"
- name: Install packages - name: Install packages (apt)
ansible.builtin.apt: ansible.builtin.apt:
package: package:
- mariadb-server - "{{ mariadb_package }}"
- python3-pymysql - python3-pymysql
state: present state: present
update_cache: true update_cache: true

View File

@ -20,10 +20,10 @@
mode: "0644" mode: "0644"
when: mariadb_use_official_repo when: mariadb_use_official_repo
- name: Install packages - name: Install packages (dnf)
ansible.builtin.dnf: ansible.builtin.dnf:
name: name:
- mariadb-server - "{{ mariadb_package }}"
- python3-PyMySQL - python3-PyMySQL
state: present state: present

10
vars/Alpine.yml Normal file
View File

@ -0,0 +1,10 @@
---
mariadb_user: mysql
mariadb_package: mariadb
mariadb_config_file: "/etc/my.cnf"
mariadb_data_dir: "/var/lib/mysql"
mariadb_pid_file: "/run/mysqld/mariadb.pid"
mariadb_unix_socket: "/run/mysqld/mysqld.sock"
mariadb_log_dir: "/var/log/mariadb"
mariadb_log_error_file: "{{ mariadb_log_dir }}/error.log"
mariadb_cron_package_name: "cronie"

View File

@ -1,5 +1,6 @@
--- ---
mariadb_user: mysql mariadb_user: mysql
mariadb_package: mariadb-server
mariadb_config_file: "/etc/mysql/mariadb.cnf" mariadb_config_file: "/etc/mysql/mariadb.cnf"
mariadb_data_dir: "/var/lib/mysql" mariadb_data_dir: "/var/lib/mysql"
mariadb_pid_file: "/run/mysqld/mysqld.pid" mariadb_pid_file: "/run/mysqld/mysqld.pid"

View File

@ -1,5 +1,6 @@
--- ---
mariadb_user: mysql mariadb_user: mysql
mariadb_package: mariadb-server
mariadb_config_file: "/etc/my.cnf.d/mariadb-server.cnf" mariadb_config_file: "/etc/my.cnf.d/mariadb-server.cnf"
mariadb_data_dir: "/var/lib/mysql" mariadb_data_dir: "/var/lib/mysql"
mariadb_pid_file: "/run/mysqld.pid" mariadb_pid_file: "/run/mysqld.pid"