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
ライセンス
gpl-3.0
ダウンロード
239.4k
所有者