robertdebock.mysql
Ansible Role MySQL
This guide helps you install and set up MySQL on your computer.
GitHub | GitLab | Downloads | Version |
---|---|---|---|
Example Playbook
Below is an example playbook that shows how to use this role, taken from molecule/default/converge.yml
. It is automatically tested during each push, pull request, and release.
---
- name: Converge
hosts: all
become: true
gather_facts: true
roles:
- role: robertdebock.mysql
mysql_port: 3307
mysql_databases:
- name: my_db
encoding: utf8
collation: utf8_bin
mysql_users:
- name: my_user
password: my_pass
priv: "my_db.*:ALL"
update_password: on_create
Preparing the Machine
The machine needs preparation, which is done in CI by using molecule/default/prepare.yml
:
---
- name: Prepare
hosts: all
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
For more details, you can check this full explanation and example on how to utilize these roles.
Role Variables
The default values for the role variables are set in defaults/main.yml
:
---
# defaults file for mysql
# The address mysql should bind to.
mysql_bind_address: "127.0.0.1"
# The port to listen on.
mysql_port: 3306
# The password for the root user. Also stored in my.cnf
mysql_root_password: "s3Cur31t4."
# The buffer pool size.
mysql_innodb_buffer_pool_size: 1G
# The I/O capacity.
mysql_innodb_io_capacity: 4000
# You can set MySQL options here.
# Note that this is a list, so you need to redefine the entire list if you want to append options.
mysql_configuration_options:
- option: bind-address
section: mysqld
value: "{{ mysql_bind_address }}"
- option: port
section: mysqld
value: "{{ mysql_port }}"
- option: socket
section: mysqld
value: "{{ mysql_socket }}"
- section: mysqld
option: innodb_buffer_pool_size
value: "{{ mysql_innodb_buffer_pool_size }}"
- section: mysqld
option: innodb_io_capacity
value: "{{ mysql_innodb_io_capacity }}"
- section: mysqld
option: log-bin-trust-function-creators
value: "1"
Requirements
You need to install pip packages listed in requirements.txt.
State of Used Roles
The following roles are used to set up a system. You can choose a different way to prepare your system.
Requirement | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap |
Context
This role is part of multiple related roles. Check the documentation for these roles for more information.
Here is a simple diagram showing the related roles:
Compatibility
This role has been tested on these container images:
Container | Tags |
---|---|
Debian | bullseye |
EL | 9 |
Fedora | all |
Ubuntu | noble, jammy |
You need at least Ansible version 2.12. Tests have been done against:
- The previous version.
- The current version.
- The development version.
If you come across any issues, please report them on GitHub.
License
This role is licensed under Apache-2.0.
Author Information
This role was created by robertdebock.
Please consider sponsoring me.
Install and configure mysql on your system.
ansible-galaxy install robertdebock.mysql