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サーバーの設定
- データベースのルートパスワードを設定
- 匿名ユーザーを削除
- テストデータベースを削除
- ルートのリモート接続を削除
- データベースを作成
- データベースユーザーを作成
- files/*.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のlogrotate回数を設定します。 |
mariadb_logrotate: rotation |
'daily' | MariaDBのlogrotateの回転を設定します。 |
use_proxy |
'False' | 管理対象ホストがWebプロキシの背後にある場合は、この変数をTrue に設定します... デフォルトはFalse です。 |
import_sql_file |
'False' | データベースにSQLファイルをインポートする場合は、この変数をTrue に設定します... デフォルトは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
例Playbook
デフォルトのパラメータと変数を使用してロールを実行するためのPlaybook例
- hosts: mariadb
roles:
- role: mahdi22.mariadb_install
become: yes
いくつかの変数を使用してロールを実行するためのPlaybook例
- 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プロキシを使用してロールを実行するためのPlaybook例
- 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スクリプトをインポートするときのロールを実行するためのPlaybook例
- 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