bbatsche.MySQL

Ansible MySQL 角色

构建状态 许可证 角色名称 版本发布 下载量

这个角色将安装并配置 MySQL、MariaDB 或 Percona 服务器,并/或为这些服务器创建数据库和用户。

请注意,在任何给定时间只能安装一个服务器,并且此角色不支持在不同类型的服务器之间切换。

角色变量

  • db_admin — 要创建的管理员用户名。默认值为 "vagrant"
  • db_pass — 要创建的管理员用户密码。默认值为 "vagrant"
  • env_name — 此服务器将用于 "开发"、"生产" 等。默认值为 "dev"
  • install_mysql — 安装 MySQL 服务器。默认值为否
  • install_mariadb — 安装 MariaDB 服务器。默认值为否
  • install_percona — 安装 Percona 服务器。默认值为否。
  • new_db_name — 要创建的数据库名称。默认值未定义(跳过)
  • new_db_user — 要创建的新用户用户名。默认值未定义(跳过)
  • new_db_pass — 要创建的新用户密码。默认值未定义(跳过)
  • new_db_priv — 授予新用户的权限。默认值是给予他们对服务器或数据库(如果定义)完全控制
  • remove_root_user — 在安装时删除根用户。默认值是删除它。
  • mysql_deb — 要添加到 APT 的 MySQL 仓库 URL。默认值为 "https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb"
  • mariadb_apt_key.trusty — 用于在 Trusty Tahr 上安装 MariaDB 的 APT 密钥。默认值为 "0xcbcb082a1bb943db"
  • mariadb_apt_key.xenial — 用于在 Xenial Xerus 上安装 MariaDB 的 APT 密钥。默认值为 "0xF1656F24C74CD1D8"
  • mariadb_version — 要安装的 MariaDB 版本。默认值为 "10.2"
  • mariadb_apt_mirror — 下载 MariaDB 的镜像。默认值为 "http://nyc2.mirrors.digitalocean.com"
  • percona_deb — 要添加到 APT 的 Percona 服务器仓库的 URL。默认值为 "https://repo.percona.com/apt/percona-release_0.1-4.{{ ansible_distribution_release }}_all.deb"
  • percona_version — 要安装的 Percona 服务器版本。默认值为 "5.7"
  • mysql_socket — MySQL 套接字的路径。默认值为 "/var/run/mysqld/mysqld.sock"
  • mysql_enable_network — 是否监听外部网络连接。默认值为否
  • mysql_sql_mode — 使用的 SQL 模式。默认值为 "ANSI,TRADITIONAL"
  • mysql_max_connections — 允许的最大连接数。默认值为 "300"
  • mysql_wait_timeout — 等待超时。默认值为 "300"

调优变量

MySQL 当然有许多设置可以调整其性能和资源使用。此角色支持设置或计算一些最相关的变量。

  • mysql_mem_percent — MySQL 应使用的总内存百分比。这并不是上限或强制执行的,更像是用于计算其他变量的目标。默认值为 "40"
  • innodb_buffer_pool_percent — 用于 InnoDB 缓冲池的 MySQL 内存百分比。默认值为 "90"
  • innodb_buffer_pool_size — 用于 InnoDB 缓冲池的总内存量。默认值根据 mysql_mem_percentinnodb_buffer_pool_percent 计算
  • innodb_buffer_pool_chunk_size — InnoDB 缓冲池的块大小。默认值为 "128M"
  • mysql_key_buffer_percent — 用于键缓冲区的 MySQL 内存百分比。默认值为 "40"
  • mysql_key_buffer_size — 用于 MySQL 键缓冲区的总内存量。默认值根据 mysql_mem_percentmysql_key_buffer_percent 计算
  • mysql_max_heap_table_size — 最大堆表大小。默认值根据总内存计算
  • mysql_open_files_limit — 打开的文件限制。默认值为每 MB 总内存 32 个
  • mysql_tmp_table_size — 临时表大小。默认值根据总内存计算

密码验证变量

此角色允许您定义服务器的密码验证要求。此配置在开发环境中被跳过。

  • mysql_password_policy — MySQL 密码策略。默认值为 "MEDIUM"(在 MariaDB 中被忽略)
  • mysql_password_check_username — 检查用户的密码是否包含其用户名。默认值为 "OFF"(在 MariaDB 中被忽略)
  • mysql_password_length — 密码长度要求。默认值为 "5"
  • mysql_password_mixed_case_count — 所需的混合大小写字符数。默认值为 "0"
  • mysql_password_number_count — 所需的数字数量。默认值为 "0"
  • mysql_password_special_char_count — 所需的非字母数字字符数量。默认值为 "0"

其他调节变量

  • innodb_io_capacity — InnoDB IO 容量。默认值为 "400"
  • innodb_log_buffer_size — InnoDB 日志缓冲区大小。默认值为 "16M"
  • myisam_sort_buffer_size — MyISAM 排序缓冲区大小。默认值为 "128M"
  • mysql_bulk_insert_buffer_size — 批量插入缓冲区大小。默认值为 "16M"
  • mysql_max_allowed_packet — 允许的最大数据包大小。默认值为 "16M"
  • mysql_query_cache_type — 是否启用 MySQL 查询缓存。默认值为 "ON"
  • mysql_query_cache_size — 查询缓存大小。默认值为 "32M"(如果启用查询缓存,否则为 "0")
  • mysql_query_cache_limit — 缓存的查询大小限制。默认值为 "1M"
  • mysql_read_buffer_size — 读取缓冲区大小。默认值为 "2M"
  • mysql_read_rnd_buffer_size — 随机读取缓冲区大小。默认值为 "2M"
  • mysql_sort_buffer_size — 排序缓冲区大小。默认值为 "2M"
  • mysql_table_open_cache — 表打开缓存。默认值为 "2000"

示例剧本

安装一个服务(MariaDB):

- hosts: servers
  roles:
     - role: bbatsche.MySQL
       install_mariadb: yes

创建一个新用户(假设服务已经安装并运行):

- hosts: servers
  roles:
     - role: bbatsche.MySQL
       new_db_user: my_new_user
       new_db_pass: n0tV3ry$ecuRe

许可证

MIT

测试

此角色中包含一组规格,用于单独或整体测试每个任务。要运行这些测试,您首先需要安装 VagrantVirtualBox。规格文件是使用 Serverspec 编写的,因此您需要 Ruby 和 Bundler

要运行完整的规格套件:

$ gem install bundler
$ bundle install
$ rake

规格套件将针对 Ubuntu Trusty Tahr (14.04)、Xenial Xerus (16.04) 和 Bionic Bever (18.04)。

要查看可用的 rake 任务(和规格):

$ rake -T

这些规格不是用于测试幂等性。它们旨在检查指定的任务是否执行其预期步骤。幂等性通过集成测试独立进行测试。

关于项目

Simple role for installing the default version of MySQL for Ubuntu

安装
ansible-galaxy install bbatsche.MySQL
许可证
mit
下载
4.8k
拥有者