mahdi22.mariadb_install

Ansible Ansible Galaxy

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
关于项目

Install and configure Mariadb server on Rhel/CentOS, Debian and Ubuntu ditributions

安装
ansible-galaxy install mahdi22.mariadb_install
许可证
mit
下载
1.6k
拥有者