#mysql #ansible
#mysql #ansible
Вопрос:
Я пытаюсь войти в MySQL DB как пользователь root и предоставить привилегии локальному пользователю. Пользователь root уже имеет привилегию доступа к удаленным хостам. Я хочу предоставить то же самое для локального пользователя. Я должен использовать ansible только для достижения этого. Я застрял в формате priv
модуля ansible mysql_user
. Согласно документации ansible в формате db.table:priv1
priv1 — это формат, основанный на GRANT
заявлении MySQL.
Ниже приведено то, что я пытаюсь сделать, но для всех комбинаций priv
я сталкиваюсь с ошибкой invalid privileges string: Invalid privileges specified
. Есть идеи, для чего может быть подходящей необработанная строка priv
?
---
- hosts: localhost
gather_facts: yes
tasks:
- name: Grant privilege to local user
mysql_user:
name: mylocaluser
login_host: 10.10.10.11
login_user: root
login_password: 'myRootPassword'
append_privs: true
priv: "mydb.*:'mylocaluser'@'10.10.10.12'"
state: present
Где 10.10.10.11
находится хост БД и 10.10.10.12
пытается ли удаленный хост получить доступ к БД с помощью mylocaluser
Ответ №1:
Вы уже указываете пользователя с name
помощью . Вам не нужно указывать это снова в priv. Следующее создает пользователя со всеми привилегиями для всех баз данных.
Этот пользователь должен иметь возможность входить в эту систему из другой системы.
- name: Grant privilege to local user
mysql_user:
name: mylocaluser
login_host: 10.10.10.11
login_user: root
login_password: 'myRootPassword'
append_privs: true
priv: '*.*:ALL'
state: present
Согласно документации, значения priv должны быть отмечены как: priv: 'DB.TABLES:PRIV1,PRIV2'
.