Make the role compatible with Alpine linux
Should be compatible with: - 3.17 - 3.18
This commit is contained in:
		
							parent
							
								
									40297fcd41
								
							
						
					
					
						commit
						f7c3a8f2e5
					
				|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| [](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster.yml) | [](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster.yml) | ||||||
| [](https://github.com/fauust/ansible-role-mariadb/actions/workflows/test_cluster_mdbf.yml) | [](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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | ../../../vars/Alpine.yml | ||||||
|  | @ -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: | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| --- | --- | ||||||
| collections: | collections: | ||||||
|  |   - name: community.general | ||||||
|   - name: community.mysql |   - name: community.mysql | ||||||
|   - name: containers.podman |   - name: containers.podman | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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" | ||||||
|  | @ -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" | ||||||
|  |  | ||||||
|  | @ -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" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue