# proxysql_manage_config – Writes the proxysql configuration settings between layers

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## Synopsis

- The proxysql_global_variables module writes the proxysql configuration settings between layers. Currently this module will always report a changed state, so should typically be used with WHEN however this will change in a future version when the CHECKSUM table commands are available for all tables in proxysql.

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

action
- / required

Choices:
- LOAD
- SAVE

The supplied action combines with the supplied direction to provide the semantics of how we want to move the config_settings between the config_layers.

config_file path | Default: "" | Specify a config file from which login_user and login_password are to be read.

config_layer
- / required

Choices:
- MEMORY
- DISK
- RUNTIME
- CONFIG

RUNTIME - represents the in-memory data structures of ProxySQL used by the threads that are handling the requests. MEMORY - (sometimes also referred as main) represents the in-memory SQLite3 database. DISK - represents the on-disk SQLite3 database. CONFIG - is the classical config file. You can only LOAD FROM the config file.

config_settings
- / required

Choices:
- MYSQL USERS
- MYSQL SERVERS
- MYSQL QUERY RULES
- MYSQL VARIABLES
- ADMIN VARIABLES
- SCHEDULER

The config_settings specifies which configuration we're writing.

direction
- / required

Choices:
- FROM
- TO

FROM - denotes we're reading values FROM the supplied config_layer and writing to the next layer. TO - denotes we're reading from the previous layer and writing TO the supplied config_layer."

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.

## Examples

    ---
    # This example saves the mysql users config from memory to disk. It uses
    # supplied credentials to connect to the proxysql admin interface.

    - proxysql_manage_config:
        login_user: 'admin'
        login_password: 'admin'
        action: "SAVE"
        config_settings: "MYSQL USERS"
        direction: "FROM"
        config_layer: "MEMORY"

    # This example loads the mysql query rules config from memory to to runtime. It
    # uses supplied credentials to connect to the proxysql admin interface.

    - proxysql_manage_config:
        config_file: '~/proxysql.cnf'
        action: "LOAD"
        config_settings: "MYSQL QUERY RULES"
        direction: "TO"
        config_layer: "RUNTIME"

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
stdout dictionary | Currently the returned value with always be changed=True. | Simply reports whether the action reported a change. Sample: {'changed': True}

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