# proxysql_replication_hostgroups – Manages replication hostgroups using the proxysql admin interface

- Synopsis

- Requirements

- Parameters

- Examples

- Return Values

- Status

## 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 - |  | 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_user string |  | The username used to authenticate to ProxySQL admin interface.
reader_hostgroup - / 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
-

Choices:
- present ←
- absent

When `present` - adds the replication hostgroup, when `absent` - removes the replication hostgroup.

writer_hostgroup - / 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
    # M(proxysql_manage_config) module).  It uses supplied credentials to connect
    # to the proxysql admin interface.

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

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

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