mysql_replication - Manage MySQL replication

New in version 1.3.

Synopsis

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
config_file
(added in 2.0)
Default:
~/.my.cnf
Specify a config file from which user and password are to be read.
connect_timeout
(added in 2.1)
Default:
30
The connection timeout when connecting to the MySQL server.
login_host Default:
localhost
Host running the database.
login_password
The password used to authenticate with.
login_port Default:
3306
Port of the MySQL server. Requires login_host be defined as other then localhost if login_port is used.
login_unix_socket
The path to a Unix domain socket for local connections.
login_user
The username used to authenticate with.
master_auto_position
(added in 2.0)
does the host uses GTID based replication or not
master_connect_retry
same as mysql variable
master_host
same as mysql variable
master_log_file
same as mysql variable
master_log_pos
same as mysql variable
master_password
same as mysql variable
master_port
same as mysql variable
master_ssl
    Choices:
  • 0
  • 1
same as mysql variable
master_ssl_ca
same as mysql variable
master_ssl_capath
same as mysql variable
master_ssl_cert
same as mysql variable
master_ssl_cipher
same as mysql variable
master_ssl_key
same as mysql variable
master_user
same as mysql variable
mode
    Choices:
  • getslave ←
  • getmaster
  • changemaster
  • stopslave
  • startslave
  • resetslave
  • resetslaveall
module operating mode. Could be getslave (SHOW SLAVE STATUS), getmaster (SHOW MASTER STATUS), changemaster (CHANGE MASTER TO), startslave (START SLAVE), stopslave (STOP SLAVE), resetslave (RESET SLAVE), resetslaveall (RESET SLAVE ALL)
relay_log_file
same as mysql variable
relay_log_pos
same as mysql variable
ssl_ca
(added in 2.0)
The path to a Certificate Authority (CA) certificate. This option, if used, must specify the same certificate as used by the server.
ssl_cert
(added in 2.0)
The path to a client public key certificate.
ssl_key
(added in 2.0)
The path to the client private key.

Notes

Note

  • Requires the PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) Python package on the remote host. For Ubuntu, this is as easy as apt-get install python-pymysql. (See apt.) For CentOS/Fedora, this is as easy as yum install python2-PyMySQL. (See yum.)
  • Both login_password and login_user are required when you are passing credentials. If none are present, the module will attempt to read the credentials from ~/.my.cnf, and finally fall back to using the MySQL default login of ‘root’ with no password.

Examples

# Stop mysql slave thread
- mysql_replication:
    mode: stopslave

# Get master binlog file name and binlog position
- mysql_replication:
    mode: getmaster

# Change master to master server 192.0.2.1 and use binary log 'mysql-bin.000009' with position 4578
- mysql_replication:
    mode: changemaster
    master_host: 192.0.2.1
    master_log_file: mysql-bin.000009
    master_log_pos: 4578

# Check slave status using port 3308
- mysql_replication:
    mode: getslave
    login_host: ansible.example.com
    login_port: 3308

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Maintenance

This module is flagged as community which means that it is maintained by the Ansible Community. See Module Maintenance & Support for more info.

For a list of other modules that are also maintained by the Ansible Community, see here.

Author

  • Balazs Pocze (@banyek)

Hint

If you notice any issues in this documentation you can edit this document to improve it.