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

Note

This plugin is part of the community.proxysql collection (version 1.3.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

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

  • mysqlclient

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.

Notes

Note

  • Supports check_mode.

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)