zauberpony.mysql-query
Ansible ロール: mysql_query
mysql テーブルに値を設定したり、レコードを挿入するための Ansible モジュールです。データベース内で設定を保存するウェブアプリケーションに便利です。例えば、icingaweb2 は初期ユーザーをデータベースに挿入する必要があります。インストールウィザードがこれを行うこともできますが、Ansible を使えばインストールを自動化できます ;)
Ansible Galaxy ページに zauberpony.mysql-query としてリストされています。
インストール
ansible-galaxy を使ってインストールします。コマンド ansible-galaxy install zauberpony.mysql-query
を使用するか、手動で mysql_query ファイルを roles_path に移動してください。
要件:
mysql の Python バインディング(コアの mysql_* モジュールと同様):
- MySQLdb(Python 2.x のみ)
- PyMySQL(Python 2.7 および Python 3.x 対応)
サンプルプレイブック
特定のテーブルにレコードが存在することを保証する完全な例。
---
- hosts: all
roles:
- zauberpony.mysql-query
tasks:
- name: 行を挿入する
mysql_query:
name: ansible-playbook-example
table: simple_table
login_host: ::1
login_user: root
login_password: password
identifiers:
id: 14
email: '[email protected]'
values:
role: "admin"
department: 'IT'
defaults:
password: "secret"
last_login: 1469264933
simpl_table
というテーブルに (id, email, role, department, password, last_login) カラムがある場合、この例では以下のことを行います:
- id = 14 かつ email = 'john@example.com' の行を探します。
- 行が存在しない場合: id=14、email='john@example.com'、role="admin"、department="IT"、password="secret"、last_login=1469264933 の行を挿入します。
- 行がすでに存在する場合: 値(role、department)が指定された値と一致するか確認し、一致しない場合は更新します。
つまり:
- identifiers は存在チェックと行を探すために使用されます。
- defaults は行が存在しない場合のデフォルト値として使用されます(挿入時のみ使用)。
- values は Ansible が保証する行の状態です。
特定のテーブルにレコードが存在しないことを保証する完全な例。
---
- hosts: all
roles:
- zauberpony.mysql-query
tasks:
- name: 行を挿入する
mysql_query:
state: absent
name: ansible-playbook-example
table: simple_table
login_host: ::1
login_user: root
login_password: password
identifiers:
id: 14
email: '[email protected]'
ソースから例を実行する
動作している mysql サーバーがあることを確認してください(例: docker-compose.yml ファイルを使用)し、必要に応じて接続パラメータを更新してください。
ansible-playbook -i demo.yml
(またはさらに簡単に ./demo.yml
)で実行し、最初からやり直すには ansible-playbook -i reset.yml
を使います。
./demo.yml
を実行した後、./checkmode-demo.yml -C
を実行すると、Ansible の チェックモード をテストできます。
./demo.yml
と ./checkmode-demo.yml
を何度か -C
ありとなしで実行して、動作を確認してください。
module to insert/update/delete a record in a mysql table
ansible-galaxy install zauberpony.mysql-query