Назад | Перейти на главную страницу

Как установить плагин MySQL с Ansible?

До сих пор мы использовали Geerlingguy Ansible роль для всех наших развертываний баз данных, но теперь я расширяю их использование для нового проекта, и мне кажется, что установка плагинов не поддерживается. Команда, которую мне нужно так или иначе выполнить в MySQL, это

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

Я сомневаюсь, что было бы неплохо даже подумать о сборе фактов и использовании модуля оболочки для непосредственного выполнения команд, но пока я не вижу других вариантов. Есть ли что-нибудь существенное, что я не заметил? Заранее спасибо.

Решается путем получения недостающего файла group_replication.so (я получил его из MySQL Community Edition), а затем его подготовки и включения с помощью этих двух задач 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 мог найти.

Я думаю, вы могли бы создать файл 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