ansible-mysql/README.md

114 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 youve 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_)