Como instalar um plugin do MySQL com o Ansible?

1

Até agora, estamos usando o papel Geerlingguy Ansible para todos os nossos Implantações de banco de dados, mas agora estou expandindo nosso uso para um novo projeto, e não parece instalar plugins é uma opção suportada. O comando que preciso executar de uma maneira ou de outra no MySQL é

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

Eu duvido que seja uma boa idéia considerar a possibilidade de coletar fatos e usar o módulo shell para executar os comandos diretamente, mas até agora não vejo nenhuma outra opção. Existe alguma coisa relevante que eu não tenha visto? Agradecemos antecipadamente.

    
por insideClaw 03.07.2018 / 19:08

2 respostas

1

Eu acho que você poderia gerar um arquivo sql com a linha INSTALAR PLUGIN e usar o MySQL import função do módulo Ansible mysql_db para executá-lo.

Isso pode ser melhor do que usar o shell.

- 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
    
por 09.07.2018 / 04:45
0

Resolvido com a obtenção do arquivo group_replication.so ausente (obtido do MySQL Community Edition), provisionando e habilitando-o usando essas duas tarefas 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'

O próprio plugin eu coloquei sob uma pasta / arquivos locais para o Ansible encontrar.

    
por 10.07.2018 / 15:05