community.proxysql.proxysql_replication_hostgroups – Manages replication hostgroups using the 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_replication_hostgroups.

Synopsis

  • Each row in mysql_replication_hostgroups represent a pair of writer_hostgroup and reader_hostgroup. ProxySQL will monitor the value of read_only for all the servers in specified hostgroups, and based on the value of read_only will assign the server to the writer or reader hostgroups.

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
comment
string
Text field that can be used for any purposes defined by the user.
config_file
path
Default:
""
Specify a config file from which login_user and login_password are to be read.
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_unix_socket
string
The socket used to connect to ProxySQL admin interface.
login_user
string
The username used to authenticate to ProxySQL admin interface.
reader_hostgroup
integer / required
Id of the reader hostgroup.
save_to_disk
boolean
    Choices:
  • no
  • yes ←
Save config to sqlite db on disk to persist the configuration.
state
string
    Choices:
  • present ←
  • absent
When present - adds the replication hostgroup, when absent - removes the replication hostgroup.
writer_hostgroup
integer / required
Id of the writer hostgroup.

Examples

---
# This example adds a replication hostgroup, it saves the mysql server config
# to disk, but avoids loading the mysql server config to runtime (this might be
# because several replication hostgroup 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 replication hostgroup
  community.proxysql.proxysql_replication_hostgroups:
    login_user: 'admin'
    login_password: 'admin'
    writer_hostgroup: 1
    reader_hostgroup: 2
    state: present
    load_to_runtime: False

# This example removes a replication hostgroup, saves the mysql server config
# to disk, and dynamically loads the mysql server config to runtime.  It uses
# credentials in a supplied config file to connect to the proxysql admin
# interface.

- name: Remove a replication hostgroup
  community.proxysql.proxysql_replication_hostgroups:
    config_file: '~/proxysql.cnf'
    writer_hostgroup: 3
    reader_hostgroup: 4
    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 group, on delete it will return the deleted record.
The replication hostgroup modified or removed from proxysql

Sample:
{'changed': True, 'msg': 'Added server to mysql_hosts', 'repl_group': {'comment': '', 'reader_hostgroup': '1', 'writer_hostgroup': '2'}, 'state': 'present'}


Authors

  • Ben Mildren (@bmildren)