Spec-Zone.ru › Ansible 2.6

mysql_user - Добавляет или удаляет пользователя из базы данных MySQL.

  • Описание
    • Требования
  • Параметры
  • Примечания
  • Примеры
  • Статус
  • Техническое обслуживание
    • Автор

Описание

  • Добавляет или удаляет пользователя из базы данных MySQL.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • PyMySQL (Python 2.7 и Python 3.X), или
  • MySQLdb (Python 2.x)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
append_privs
bool

(добавлен в 1.4)
    Варианты:
  • нет ←
  • да
Добавить привилегии, определенные в priv, к существующим для этого пользователя, вместо перезаписи существующих.
check_implicit_admin
bool

(добавлен в 1.3)
    Варианты:
  • нет ←
  • да
Проверить, разрешает ли mysql вход как root/без пароля, прежде чем использовать предоставленные учетные данные.
config_file
(добавлен в 2.0)
Значение по умолчанию:
"~/.my.cnf"
Указать конфигурационный файл, из которого необходимо считать имя пользователя и пароль.
connect_timeout
(добавлен в 2.1)
Значение по умолчанию:
30
Таймаут подключения при подключении к серверу MySQL.
encrypted
bool

(добавлен в 2.0)
    Варианты:
  • нет ←
  • да
Указать, что поле 'password' является хэшем `mysql_native_password`
host Значение по умолчанию:
"localhost"
часть имени пользователя MySQL
host_all
bool

(добавлен в 2.1)
    Варианты:
  • нет ←
  • да
переопределить параметр host, заставляя Ansible применять изменения ко всем именам хостов для данного пользователя. Этот параметр нельзя использовать при создании пользователей
login_host Значение по умолчанию:
"localhost"
Хост, на котором работает база данных.
login_password
Пароль, используемый для аутентификации.
login_port Значение по умолчанию:
3306
Порт сервера MySQL. Требуется, чтобы login_host был определен как отличный от localhost, если используется login_port.
login_unix_socket
Путь к сокету Unix-домена для локальных подключений.
login_user
Имя пользователя, используемое для аутентификации.
name
обязательно
Имя пользователя (роли) для добавления или удаления
password
установка пароля пользователя.
priv
Строка привилегий MySQL в формате: db.table:priv1,priv2.
Несколько привилегий можно указать, разделив их с помощью слеша: db.table:priv/db.table:priv.
Формат основан на операторе MySQL GRANT.
Имена баз данных и таблиц могут быть заключены в кавычки в стиле MySQL.
Если используются привилегии на столбцы, то часть priv1,priv2 должна быть точно такой же, как возвращается оператором SHOW GRANT. В противном случае модуль всегда будет сообщать об изменениях. Он включает группировку столбцов по разрешениям (SELECT(col1,col2) вместо SELECT(col1,SELECT(col2))).
sql_log_bin
bool

(добавлен в 2.1)
    Варианты:
  • нет
  • да ←
Включить или выключить двоичное протоколирование для подключения.
ssl_ca
(добавлен в 2.0)
Путь к сертификату центра сертификации (CA). Если используется этот параметр, необходимо указать тот же сертификат, что и у сервера.
ssl_cert
(добавлен в 2.0)
Путь к сертификату открытого ключа клиента.
ssl_key
(добавлен в 2.0)
Путь к закрытому ключу клиента.
state
    Варианты:
  • present ←
  • absent
Должен ли пользователь существовать. При значении absent, удаляет пользователя.
update_password
(добавлен в 2.0)
    Варианты:
  • всегда ←
  • при_создании
always будет обновлять пароли, если они отличаются. on_create будет устанавливать пароль только для вновь созданных пользователей.

Примечания

Примечание

  • Сервер MySQL устанавливается по умолчанию с именем пользователя 'root' и без пароля. Чтобы защитить этого пользователя в рамках идемпотентного плейбука, необходимо создать как минимум две задачи: первая должна изменить пароль пользователя root, не предоставляя никаких данных login_user/login_password. Вторая должна удалить файл ~/.my.cnf, содержащий новые учетные данные root. Последующие запуски плейбука будут выполняться успешно, считывая новые учетные данные из файла.
  • В настоящее время поддерживается только mysql_native_password хэшированный пароль.
  • Требуется пакет PyMySQL (Python 2.7 и Python 3.X) или MySQL-python (Python 2.X) Python на удалённом хосте. Для Ubuntu, это так же просто, как apt-get install python-pymysql. (См. apt.) Для CentOS/Fedora, это так же просто, как yum install python2-PyMySQL. (См. yum.)
  • И login_password и login_user требуются, когда вы передаёте учетные данные. Если ни один из них не указан, модуль попытается прочитать учетные данные из ~/.my.cnf, и, наконец, вернется к использованию MySQL по умолчанию с именем пользователя 'root' и без пароля.

Примеры

# Removes anonymous user account for localhost
- mysql_user:
    name: ''
    host: localhost
    state: absent

# Removes all anonymous user accounts
- mysql_user:
    name: ''
    host_all: yes
    state: absent

# Create database user with name 'bob' and password '12345' with all database privileges
- mysql_user:
    name: bob
    password: 12345
    priv: '*.*:ALL'
    state: present

# Create database user with name 'bob' and previously hashed mysql native password '*EE0D72C1085C46C5278932678FBE2C6A782821B4' with all database privileges
- mysql_user:
    name: bob
    password: '*EE0D72C1085C46C5278932678FBE2C6A782821B4'
    encrypted: yes
    priv: '*.*:ALL'
    state: present

# Creates database user 'bob' and password '12345' with all database privileges and 'WITH GRANT OPTION'
- mysql_user:
    name: bob
    password: 12345
    priv: '*.*:ALL,GRANT'
    state: present

# Modify user Bob to require SSL connections. Note that REQUIRESSL is a special privilege that should only apply to *.* by itself.
- mysql_user:
    name: bob
    append_privs: true
    priv: '*.*:REQUIRESSL'
    state: present

# Ensure no user named 'sally'@'localhost' exists, also passing in the auth credentials.
- mysql_user:
    login_user: root
    login_password: 123456
    name: sally
    state: absent

# Ensure no user named 'sally' exists at all
- mysql_user:
    name: sally
    host_all: yes
    state: absent

# Specify grants composed of more than one word
- mysql_user:
    name: replication
    password: 12345
    priv: "*.*:REPLICATION CLIENT"
    state: present

# Revoke all privileges for user 'bob' and password '12345'
- mysql_user:
    name: bob
    password: 12345
    priv: "*.*:USAGE"
    state: present

# Example privileges string format
# mydb.*:INSERT,UPDATE/anotherdb.*:SELECT/yetanotherdb.*:ALL

# Example using login_unix_socket to connect to server
- mysql_user:
    name: root
    password: abc123
    login_unix_socket: /var/run/mysqld/mysqld.sock

# Example of skipping binary logging while adding user 'bob'
- mysql_user:
    name: bob
    password: 12345
    priv: "*.*:USAGE"
    state: present
    sql_log_bin: no

# Example .my.cnf file for setting the root password
# [client]
# user=root
# password=n<_665{vS43y

Статус

Этот модуль помечен как превью, что означает, что его интерфейс не гарантированно будет обратной совместимостью.

Техническое обслуживание

Этот модуль помечен как community, что означает, что он поддерживается сообществом Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.

Список других модулей, поддерживаемых сообществом Ansible, см. здесь.

Автор

  • Jonathan Mainguy (@Jmainguy)

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ для его улучшения.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/mysql_user_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API