community.proxysql.proxysql_manage_config – Writes the proxysql configuration settings between layers.

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

Synopsis

  • The community.proxysql.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
string / 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
string / 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
string / required
    Choices:
  • MYSQL USERS
  • MYSQL SERVERS
  • MYSQL QUERY RULES
  • MYSQL VARIABLES
  • ADMIN VARIABLES
  • SCHEDULER
The config_settings specifies which configuration we're writing.
direction
string / 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_unix_socket
string
The socket 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.

- name: Save the mysql users config from memory to disk
  community.proxysql.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 runtime. It
# uses supplied credentials to connect to the proxysql admin interface.

- name: Load the mysql query rules config from memory to runtime
  community.proxysql.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}


Authors

  • Ben Mildren (@bmildren)