114 lines
3.1 KiB
Markdown
114 lines
3.1 KiB
Markdown
MariaDB (MySQL) Ansible role for Debian
|
||
=======================================
|
||
|
||
[![Ansible Galaxy](http://img.shields.io/badge/ansible--galaxy-HanXHX.mysql-blue.svg)](https://galaxy.ansible.com/HanXHX/mysql) ![GitHub Workflow Status (master)](https://img.shields.io/github/actions/workflow/status/hanxhx/ansible-mysql/molecule.yml?branch=master)
|
||
|
||
Install and configure MariaDB (Galera Cluster). Manage replication (master/slave). Create users and databases.
|
||
|
||
| OS | Origin | MariaDB versions |
|
||
|:--------------------:|:----------|:-----------------|
|
||
| Debian Bookworm (12) | Debian | 10.11 |
|
||
| Debian Bookworm (12) | Upstream | From 10.11 |
|
||
|
||
If you need to manage previous Debian versions, please use the [latest managed version](https://github.com/HanXHX/ansible-mysql/releases/tag/2.2.1).
|
||
|
||
|
||
Notes
|
||
-----
|
||
|
||
* Galera Cluster is experimental
|
||
* Due to Vagrant + Docker limitation (private network), replication/galera can't be checked with Travis
|
||
* If you need to test this role with Vagrant, you must install hostmanager plugin: `vagrant plugin install vagrant-hostmanager`
|
||
|
||
Requirements
|
||
------------
|
||
|
||
- Ansible - see [meta/main.yml](meta/main.yml)
|
||
- Collections: see [requirements.yml](requirements.yml)
|
||
|
||
Role Variables
|
||
--------------
|
||
|
||
- `mariadb_use_galera`: set true to configure and install Galera Cluster
|
||
|
||
### Configuration
|
||
|
||
If you need a feature you can't configure, you can use this list. These config will go to `/etc/mysql/conf.d/01-extra`.
|
||
|
||
- `mariadb_extra_config`: key/value hash see [default vars file](defaults/main.yml)
|
||
|
||
### Databases
|
||
|
||
- `mariadb_databases`: list...
|
||
|
||
### Users
|
||
|
||
Example:
|
||
|
||
```
|
||
mariadb_users:
|
||
- name: 'lorem'
|
||
password: '123'
|
||
priv: lorem.*:ALL
|
||
host: 'localhost'
|
||
- name: 'ipsum'
|
||
password: '465'
|
||
priv: ipsum.*:ALL
|
||
host_all: yes
|
||
```
|
||
|
||
Check "priv" syntax in [mysql\_user module documentation](https://docs.ansible.com/ansible/latest/collections/community/mysql/mysql_user_module.html)
|
||
|
||
### Packaging
|
||
|
||
- `mariadb_upstream_version`: depends Debian version
|
||
|
||
### Other
|
||
|
||
- `mariadb_debug_role`: boolean, set true to disable `no_log` hidding
|
||
|
||
Dependencies
|
||
------------
|
||
|
||
None.
|
||
|
||
If you need to dev this role locally with molecule
|
||
--------------------------------------------------
|
||
|
||
Check available scenarios in [molecule](molecule) directory.
|
||
|
||
With `debian12_master_slave` scenario:
|
||
|
||
```commandline
|
||
molecule -v -c molecule/_shared/base.yml verify -s debian12_master_slave
|
||
```
|
||
|
||
Example Playbook
|
||
----------------
|
||
|
||
- hosts: servers
|
||
roles:
|
||
- { role: hanxhx.mysql, mariadb_origin: 'upstream' }
|
||
|
||
License
|
||
-------
|
||
|
||
GPLv2
|
||
|
||
Donation
|
||
--------
|
||
|
||
If this code helped you, or if you’ve used them for your projects, feel free to buy me some :beers:
|
||
|
||
- Bitcoin: `1BQwhBeszzWbUTyK4aUyq3SRg7rBSHcEQn`
|
||
- Ethereum: `0x63abe6b2648fd892816d87a31e3d9d4365a737b5`
|
||
- Litecoin: `LeNDw34zQLX84VvhCGADNvHMEgb5QyFXyD`
|
||
- Monero: `45wbf7VdQAZS5EWUrPhen7Wo4hy7Pa7c7ZBdaWQSRowtd3CZ5vpVw5nTPphTuqVQrnYZC72FXDYyfP31uJmfSQ6qRXFy3bQ`
|
||
|
||
No crypto-currency? :star: the project is also a way of saying thank you! :sunglasses:
|
||
|
||
Author Information
|
||
------------------
|
||
|
||
- Twitter: [@hanxhx_](https://twitter.com/hanxhx_)
|