web-dev-qa-db-ja.com

AnsibleでMySQLプラグインをインストールするにはどうすればいいですか?

これまで、すべてのデータベースデプロイメントに Geerlingguy Ansible role を使用してきましたが、現在は新しいプロジェクトでの使用を拡大しており、プラグインのインストールはそうではないようです。サポートされているオプション。 MySQLで何らかの方法で実行する必要があるコマンドは

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

事実を収集し、Shellモジュールを使用して実際にコマンドを直接実行することを検討するのは良い考えではないかと思いますが、これまでのところ、他のオプションはありません。私が見つけていない関連するものはありますか?前もって感謝します。

1
insideClaw

不足しているgroup_replication.soファイル(MySQL Community Editionから取得)を取得し、次の2つのAnsibleタスクを使用してプロビジョニングおよび有効化することで解決しました。

- name: Provision the MySQL group_replication plugin
  copy:
    src: group_replication.so
    dest: /usr/lib/mysql/plugin/group_replication.so
    mode: 0644

- name: Install MySQL plugin group_replication
  Shell: >
         mysql -u root -e "SHOW PLUGINS\G" | grep -q group_replication
         && echo -n FOUND
         || mysql -u root -e "INSTALL PLUGIN group_replication SONAME 'group_replication.so';"
  register: plugin_state
  changed_when: plugin_state.stdout != 'FOUND'

Ansibleが見つけられるようにローカルファイル/フォルダーの下に配置したプラグイン自体。

1
insideClaw

INSTALL PLUGIN行を使用してSQLファイルを生成し、MySQL Ansible mysql_dbモジュールのインポート関数 を使用できると思います。それを実行します。

これは、シェルを使用するよりも優れている場合があります。

- name: Import sql similar to mysql -u <username> -p <password> < file.sql
  mysql_db:
    state: import
    name: DATABASE-NAME
    target: /path/to/import/file.sql
1
Leo