bbatsche.MySQL
Ansible MySQLロール
このロールは、MySQL、MariaDB、またはPerconaサーバーをインストールおよび設定し、それらのサーバー用にデータベースやユーザーを作成します。
注意:同時にインストールできるのは1つのサーバーのみで、このロールは別のサーバータイプに切り替えることはサポートしていません。
ロール変数
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
— インストール時にrootユーザーを削除するか。デフォルトは削除する。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_percent
およびinnodb_buffer_pool_percent
に基づいて計算されますinnodb_buffer_pool_chunk_size
— InnoDBバッファプールのチャンクサイズ。デフォルトは「128M」mysql_key_buffer_percent
— キーバッファに使用するMySQLのメモリの割合。デフォルトは「40」mysql_key_buffer_size
— MySQLキーバッファに使用する総メモリの量。デフォルトはmysql_mem_percent
およびmysql_key_buffer_percent
に基づいて計算されますmysql_max_heap_table_size
— 最大ヒープテーブルサイズ。デフォルトは総メモリに基づいて計算されますmysql_open_files_limit
— オープンファイル制限。デフォルトは総メモリの1MBあたり32mysql_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
テスト
このロールには、各タスクを個別または全体としてテストするための一連の仕様が含まれています。これらのテストを実行するには、まずVirtualBoxとVagrantをインストールする必要があります。仕様ファイルは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
これらの仕様は冪等性をテストすることを目的としていません。指定されたタスクが期待されるステップを実行することを確認するためのものです。冪等性は、統合テストを通じて独立してテストされます。