これまで、すべてのデータベースデプロイメントに Geerlingguy Ansible role を使用してきましたが、現在は新しいプロジェクトでの使用を拡大しており、プラグインのインストールはそうではないようです。サポートされているオプション。 MySQLで何らかの方法で実行する必要があるコマンドは
INSTALL PLUGIN group_replication SONAME 'group_replication.so';
事実を収集し、Shellモジュールを使用して実際にコマンドを直接実行することを検討するのは良い考えではないかと思いますが、これまでのところ、他のオプションはありません。私が見つけていない関連するものはありますか?前もって感謝します。
不足している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が見つけられるようにローカルファイル/フォルダーの下に配置したプラグイン自体。
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