mahdi22.mariadb_install
Ansible角色 mariadb_install
这是一个用于在RHEL/CentOS (7、8)、Debian (9、10) 和 Ubuntu (20.04、19.10、18.04、16.04) 发行版上安装和安全配置MariaDB的Ansible角色。具体来说,该角色的职责包括:
- 从官方MariaDB仓库安装MariaDB软件包
- 配置MariaDB服务器
- 设置数据库根密码
- 移除匿名用户
- 移除测试数据库
- 移除root用户的远程连接
- 创建数据库
- 创建数据库用户
- 将文件/*.sql脚本导入数据库中
安装
$ ansible-galaxy install mahdi22.mariadb_install
角色变量
基本配置
变量 | 默认值 | 注释 |
---|---|---|
mariadb_version |
'10.4' | 设置MariaDB版本:- v(10.5 10.4 10.3) RHEL/Centos 8, Debian 10, Ubuntu 20.04, Ubuntu 19.10。 - v(10.5 10.4 10.3 10.2 10.1) RHEL/CentOS 7, Debian 9, Ubuntu 18.04, Ubuntu 16.04 |
bind-address |
'127.0.0.1' | 设置要监听的网络接口的IP地址,或设置为'0.0.0.0'以监听所有接口。 |
configure_swappiness |
'True' | 当为True 时,这个角色将设置“swappiness”值 (请参见 mariadb_swappiness )。 |
create_database |
'False' | 设置create_database为True以创建数据库。 |
database |
'' | 设置数据库名称。只能与create_database: true一起使用。 |
port |
3306 | 用于监听客户端请求的端口号 |
mysql_root_password |
'azerty' | 设置MariaDB根用户密码 |
mariadb_service |
mariadb | 服务的名称 |
swappiness |
'10' | "Swappiness"值 (字符串)。系统默认值为60。值为0表示避免交换进程。 |
create_db_user |
'False' | 设置create_db_user为True以创建用户数据库。 |
db_user_name |
'' | 设置要添加的用户名。必须与create_database: true, create_db_user: true和数据库一起使用。 |
db_user_password |
'' | 设置用户数据库密码。 |
priviliges |
'ALL' | 设置用户数据库权限。 |
mariadb_logrotate: rotate |
'7' | 设置MariaDB日志轮换数量。 |
mariadb_logrotate: rotation |
'daily' | 设置MariaDB日志轮换频率。 |
use_proxy |
'False' | 如果管理主机在Web代理后面,请将此变量设置为True... 默认为False。 |
import_sql_file |
'False' | 设置此变量为True以将sql文件导入数据库... 默认为False。 |
sql_file_name |
'[]' | 要导入数据库的sql文件名称列表(一个文件或多个文件)... 如果import_sql_file为true,则应定义该变量 |
备注
(1) 要移除mysql根用户的远程连接,请设置参数deny_remote_connections为true。例如: defaults/main.yml
deny_remote_connections: true
(2) 强烈建议设置数据库根密码! 留空密码存在安全风险。如果未设置此变量,角色将发出警告。默认密码为"azerty" defaults/main.yml
mysql_root_password: 'azerty'
(3) 要将sql脚本导入数据库,请设置import_sql_file为true,定义sql_file_name,并将您的sql脚本放入files目录 (mahdi22.mariadb_install/files/)。例如: defaults/main.yml
import_sql_file: true
sql_file_name:
- sqlscript1.sql
- sqlscript2.sql
- sqlscriptN.sql
示例剧本
使用默认参数和变量执行角色的剧本示例
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
使用一些变量执行角色的剧本示例
- 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
使用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/
导入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
测试
该角色在以下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