community.proxysql.proxysql_mysql_users – Adds or removes mysql users from proxysql admin interface.
Note
This plugin is part of the community.proxysql collection (version 1.0.0).
To install it use: ansible-galaxy collection install community.proxysql.
To use it in a playbook, specify: community.proxysql.proxysql_mysql_users.
Synopsis
- The community.proxysql.proxysql_mysql_users module adds or removes mysql users using the proxysql admin interface.
Requirements
The below requirements are needed on the host that executes this module.
- PyMySQL (Python 2.7 and Python 3.X), or
- MySQLdb (Python 2.x)
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
| active  boolean  | 
 | A user with active set to  Falsewill be tracked in the database, but will be never loaded in the in-memory data structures. If omitted the proxysql database default for active isTrue. | 
| backend  boolean  | 
 | If backend is set to  True, this (username, password) pair is used for authenticating to the ProxySQL instance. | 
| config_file  path  | Default: "" | Specify a config file from which login_user and login_password are to be read. | 
| default_hostgroup  integer  | If there is no matching rule for the queries sent by this user, the traffic it generates is sent to the specified hostgroup. If omitted the proxysql database default for use_ssl is 0. | |
| default_schema  string  | The schema to which the connection should change to by default. | |
| encrypt_password  boolean  | 
 | Encrypt a cleartext password passed in the password option, using the method defined in encryption_method. | 
| encryption_method  string  | 
 | Encryption method used when encrypt_password is set to  True. | 
| fast_forward  boolean  | 
 | If fast_forward is set to  True, fast_forward will bypass the query processing layer (rewriting, caching) and pass through the query directly as is to the backend server. If omitted the proxysql database default for fast_forward isFalse. | 
| frontend  boolean  | 
 | If frontend is set to  True, this (username, password) pair is used for authenticating to the mysqld servers against any hostgroup. | 
| load_to_runtime  boolean  | 
 | Dynamically load config to runtime memory. | 
| login_host  string  | Default: "127.0.0.1" | The host used to connect to ProxySQL admin interface. | 
| login_password  string  | The password used to authenticate to ProxySQL admin interface. | |
| login_port  integer  | Default: 6032 | The port used to connect to ProxySQL admin interface. | 
| login_unix_socket  string  | The socket used to connect to ProxySQL admin interface. | |
| login_user  string  | The username used to authenticate to ProxySQL admin interface. | |
| max_connections  integer  | The maximum number of connections ProxySQL will open to the backend for this user. If omitted the proxysql database default for max_connections is 10000. | |
| password  string  | Password of the user connecting to the mysqld or ProxySQL instance. | |
| save_to_disk  boolean  | 
 | Save config to sqlite db on disk to persist the configuration. | 
| state  string  | 
 | When  present- adds the user, whenabsent- removes the user. | 
| transaction_persistent  boolean  | 
 | If this is set for the user with which the MySQL client is connecting to ProxySQL (thus a "frontend" user), transactions started within a hostgroup will remain within that hostgroup regardless of any other rules. If omitted the proxysql database default for transaction_persistent is  False. | 
| use_ssl  boolean  | 
 | If use_ssl is set to  True, connections by this user will be made using SSL connections. If omitted the proxysql database default for use_ssl isFalse. | 
| username  string / required  | Name of the user connecting to the mysqld or ProxySQL instance. | 
Examples
---
# This example adds a user, it saves the mysql user config to disk, but
# avoids loading the mysql user config to runtime (this might be because
# several users are being added and the user wants to push the config to
# runtime in a single batch using the community.general.proxysql_manage_config
# module).  It uses supplied credentials to connect to the proxysql admin
# interface.
- name: Add a user
  community.proxysql.proxysql_mysql_users:
    login_user: 'admin'
    login_password: 'admin'
    username: 'productiondba'
    state: present
    load_to_runtime: False
# This example removes a user, saves the mysql user config to disk, and
# dynamically loads the mysql user config to runtime.  It uses credentials
# in a supplied config file to connect to the proxysql admin interface.
- name: Remove a user
  community.proxysql.proxysql_mysql_users:
    config_file: '~/proxysql.cnf'
    username: 'mysqlboy'
    state: absent
   Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
| stdout  dictionary  | On create/update will return the newly modified user, on delete it will return the deleted record. | The mysql user modified or removed from proxysql Sample: {'changed': True, 'msg': 'Added user to mysql_users', 'state': 'present', 'user': {'active': 1, 'backend': 1, 'default_hostgroup': 1, 'default_schema': None, 'fast_forward': 0, 'frontend': 1, 'max_connections': 10000, 'password': 'VALUE_SPECIFIED_IN_NO_LOG_PARAMETER', 'schema_locked': 0, 'transaction_persistent': 0, 'use_ssl': 0, 'username': 'guest_ro'}, 'username': 'guest_ro'} | 
Authors
- Ben Mildren (@bmildren)
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.10/collections/community/proxysql/proxysql_mysql_users_module.html