mahdi22.mariadb_install
Rol de Ansible mariadb_install
Una rol de Ansible para instalar y asegurar MariaDB en distribuciones de RHEL/CentOS (7, 8), Debian (9, 10) y Ubuntu (20.04, 19.10, 18.04, 16.04). Las responsabilidades de este rol son:
- Instalar paquetes de MariaDB desde los repositorios oficiales de MariaDB.
- Configurar el servidor MariaDB.
- Establecer la contraseña del root de la base de datos.
- Eliminar usuarios anónimos.
- Eliminar la base de datos de prueba.
- Eliminar las conexiones remotas del root.
- Crear una base de datos.
- Crear un usuario de base de datos.
- Importar archivos/*.sql a la base de datos.
Instalación
$ ansible-galaxy install mahdi22.mariadb_install
Variables del Rol
Configuración básica
Variable | Predeterminado | Comentarios |
---|---|---|
mariadb_version |
'10.4' | Establece la versión de MariaDB: - v(10.5 10.4 10.3) RHEL/CentOS 8, Debian 10, Ubuntu 20.04, 19.10. - v(10.5 10.4 10.3 10.2 10.1) RHEL/CentOS 7, Debian 9, Ubuntu 18.04, 16.04 |
bind-address |
'127.0.0.1' | Establezca esto a la dirección IP de la interfaz de red para escuchar o '0.0.0.0' para escuchar en todas las interfaces. |
configure_swappiness |
'True' | Cuando True , este rol establecerá el valor de "swappiness" (ver mariadb_swappiness ). |
create_database |
'False' | Establezca create_database: True para crear la base de datos. |
database |
'' | Establezca el nombre de la base de datos. Debe usarse con create_database: true |
port |
3306 | El número de puerto utilizado para escuchar las solicitudes de los clientes. |
mysql_root_password |
'azerty' | Establezca la contraseña del root de MariaDB. |
mariadb_service |
mariadb | Nombre del servicio |
swappiness |
'10' | Valor de "Swappiness" (cadena). El valor predeterminado del sistema es 60. Un valor de 0 significa que se evita cambiar procesos. |
create_db_user |
'False' | Establezca create_db_user: True para crear el usuario de la base de datos. |
db_user_name |
'' | Establezca el usuario que se añadirá. Debe usarse con create_database: true, create_db_user: true y la base de datos definida. |
db_user_password |
'' | Establezca la contraseña del usuario de la base de datos. |
priviliges |
'ALL' | Establezca los privilegios del usuario de la base de datos. |
mariadb_logrotate: rotate |
'7' | Establezca el número de rotación de mariadb logrotate. |
mariadb_logrotate: rotation |
'daily' | Establezca la rotación de mariadb logrotate. |
use_proxy |
'False' | Establezca esta variable a True si los hosts gestionados están detrás de un proxy web... predeterminado False. |
import_sql_file |
'False' | Establezca esta variable a True para importar archivos SQL en bases de datos... predeterminado False. |
sql_file_name |
'[]' | Lista de nombres de archivos SQL a importar en bases de datos (uno o más)... Esta variable debe definirse si import_sql_file es true. |
Observaciones
(1) Para eliminar la conexión remota para el usuario root de mysql, establezca el parámetro deny_remote_connections: true. Por ejemplo: defaults/main.yml
deny_remote_connections: true
(2) ¡Se recomienda encarecidamente establecer la contraseña del root de la base de datos! Dejar la contraseña vacía es un riesgo de seguridad. El rol emitirá una advertencia si la variable no se establece. Contraseña predeterminada "azerty". defaults/main.yml
mysql_root_password: 'azerty'
(3) Para importar scripts SQL en las bases de datos, establezca import_sql_file: true, defina sql_file_name y coloque sus scripts SQL en el directorio de archivos (mahdi22.mariadb_install/files/). Por ejemplo: defaults/main.yml
import_sql_file: true
sql_file_name:
- sqlscript1.sql
- sqlscript2.sql
- sqlscriptN.sql
Ejemplo de Playbook
Ejemplo de playbook para ejecutar el rol usando los parámetros y variables predeterminadas.
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
Ejemplo de playbook para ejecutar el rol usando algunas variables.
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
vars:
mariadb_version: "10.5"
deny_remote_connections: true
mysql_root_password: "azerty"
create_database: true
database: database_test
create_db_user: true
db_user_name: user_database
db_user_password: password
Ejemplo de playbook para ejecutar el rol usando un proxy web.
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
vars:
mariadb_version: "10.5"
deny_remote_connections: true
mysql_root_password: "azerty"
create_database: true
database: database_test
create_db_user: true
db_user_name: user_database
db_user_password: password
use_proxy: yes
proxy_env:
http_proxy: http://proxy.local:8080/
https_proxy: http://proxy.local:8080/
Ejemplo de playbook para ejecutar el rol con importación de scripts SQL.
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
vars:
mariadb_version: "10.5"
deny_remote_connections: true
mysql_root_password: "azerty"
create_database: true
database: database_test
create_db_user: true
db_user_name: user_database
db_user_password: password
use_proxy: yes
proxy_env:
http_proxy: http://proxy.local:8080/
https_proxy: http://proxy.local:8080/
import_sql_file: true
sql_file_name:
- sqlscript1.sql
- sqlscript2.sql
- sqlscriptN.sql
Pruebas
Este rol se ha probado en distribuciones de Linux:
- RHEL/CentOS 8
- RHEL/CentOS 7
- Debian 10
- Debian 9
- Debian 8
- Ubuntu 20.04
- Ubuntu 19.10
- Ubuntu 18.04
- Ubuntu 16.04
Install and configure Mariadb server on Rhel/CentOS, Debian and Ubuntu ditributions
ansible-galaxy install mahdi22.mariadb_install