proxysql_mysql_users – Adds or removes mysql users from proxysql admin interface — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# proxysql_mysql_users – Adds or removes mysql users from proxysql admin interface

- Synopsis
- Requirements
- Parameters
- Examples
- Return Values
- Status

## Synopsis

- The 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 | Choices: no yes | A user with active set to `False` will be tracked in the database, but will be never loaded in the in-memory data structures. If omitted the proxysql database default for active is `True`.
backend boolean | Choices: no yes ← | 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 - |  | 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 - |  | The schema to which the connection should change to by default.
fast_forward boolean | Choices: no yes | 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 is `False`.
frontend boolean | Choices: no yes ← | 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 | Choices: no yes ← | 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_user string |  | The username used to authenticate to ProxySQL admin interface.
max_connections - |  | 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 - |  | Password of the user connecting to the mysqld or ProxySQL instance.
save_to_disk boolean | Choices: no yes ← | Save config to sqlite db on disk to persist the configuration.
state - | Choices: present ← absent | When `present` - adds the user, when `absent` - removes the user.
transaction_persistent boolean | Choices: no yes | 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 | Choices: no yes | 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 is `False`.
username - / 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 M(proxysql_manage_config) module).  It
    # uses supplied credentials to connect to the proxysql admin interface.

    - 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.

    - 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'}

## Status

- This module is guaranteed to have backward compatible interface changes going forward. [stableinterface]
- This module is maintained by the Ansible Community. [community]

### Authors

- Ben Mildren (@bmildren)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.