Spec-Zone.ru › Ansible 2.5

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

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

Описание

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

Требования

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

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
append_privs
(добавлен в 1.4)
    Варианты:
  • yes
  • no ←
Добавить привилегии, определенные в priv, к существующим для этого пользователя, вместо перезаписи существующих.
check_implicit_admin
(добавлен в 1.3)
    Варианты:
  • yes
  • no ←
Проверить, позволяет ли MySQL вход как root/без пароля, прежде чем использовать предоставленные учетные данные.
config_file
(добавлен в 2.0)
Значение по умолчанию:
~/.my.cnf
Указать файл конфигурации, из которого нужно считать имя пользователя и пароль.
connect_timeout
(добавлен в 2.1)
Значение по умолчанию:
30
Таймаут подключения к серверу MySQL.
encrypted
(добавлен в 2.0)
    Варианты:
  • yes
  • no ←
Указать, что поле 'password' — это хэш `mysql_native_password`
host Значение по умолчанию:
localhost
часть имени пользователя MySQL
host_all
(добавлен в 2.1)
    Варианты:
  • yes
  • no ←
переопределяет параметр host, заставляя Ansible применять изменения ко всем именам хостов для данного пользователя. Этот параметр нельзя использовать при создании пользователей
login_host Значение по умолчанию:
localhost
Хост, на котором работает база данных.
login_password Значение по умолчанию:
None
Пароль для аутентификации.
login_port Значение по умолчанию:
3306
Порт сервера MySQL. Требуется, если login_host задан иначе, чем localhost.
login_unix_socket Значение по умолчанию:
None
Путь к сокету Unix доменного имени для локальных подключений.
login_user Значение по умолчанию:
None
Имя пользователя для аутентификации.
name
обязательно
Имя пользователя (роли) для добавления или удаления
password Значение по умолчанию:
None
Установить пароль пользователя.
priv Значение по умолчанию:
None
Строка привилегий 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
(добавлен в 2.1)
    Варианты:
  • yes ←
  • no
Включить или отключить бинарное протоколирование для подключения.
ssl_ca
(добавлен в 2.0)
Значение по умолчанию:
None
Путь к сертификату Центра сертификации (CA). Если используется, этот параметр должен указывать тот же сертификат, что и сервер.
ssl_cert
(добавлен в 2.0)
Значение по умолчанию:
None
Путь к сертификату открытого ключа клиента.
ssl_key
(добавлен в 2.0)
Значение по умолчанию:
None
Путь к закрытому ключу клиента.
state
    Варианты:
  • present ←
  • absent
Существует ли пользователь. Если значение absent, удаляет пользователя.
update_password
(добавлен в 2.0)
    Варианты:
  • always ←
  • on_create
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) на удаленном хосте. Для 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

Статус

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

Автор

  • 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.5/modules/mysql_user_module.html

Spec-Zone.ru

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