W3cubDocs

/Ansible

mysql_replication - Manage MySQL replication

New in version 1.3.

Synopsis

  • Manages MySQL server replication, slave, master status get and change master host.

Requirements (on host that executes module)

  • MySQLdb

Options

parameter required default choices comments
config_file
(added in 2.0)
no ~/.my.cnf
Specify a config file from which user and password are to be read.
connect_timeout
(added in 2.1)
no 30
The connection timeout when connecting to the MySQL server.
login_host
no localhost
Host running the database.
login_password
no
The password used to authenticate with.
login_port
no 3306
Port of the MySQL server. Requires login_host be defined as other then localhost if login_port is used.
login_unix_socket
no
The path to a Unix domain socket for local connections.
login_user
no
The username used to authenticate with.
master_auto_position
(added in 2.0)
no
does the host uses GTID based replication or not
master_connect_retry
no
same as mysql variable
master_host
no
same as mysql variable
master_log_file
no
same as mysql variable
master_log_pos
no
same as mysql variable
master_password
no
same as mysql variable
master_port
no
same as mysql variable
master_ssl
no
  • 0
  • 1
same as mysql variable
master_ssl_ca
no
same as mysql variable
master_ssl_capath
no
same as mysql variable
master_ssl_cert
no
same as mysql variable
master_ssl_cipher
no
same as mysql variable
master_ssl_key
no
same as mysql variable
master_user
no
same as mysql variable
mode
no getslave
  • 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
no
same as mysql variable
relay_log_pos
no
same as mysql variable
ssl_ca
(added in 2.0)
no
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)
no
The path to a client public key certificate.
ssl_key
(added in 2.0)
no
The path to the client private key.

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

Notes

Note

  • Requires the MySQLdb Python package on the remote host. For Ubuntu, this is as easy as apt-get install python-mysqldb. (See apt.) For CentOS/Fedora, this is as easy as yum install MySQL-python. (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.

Status

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

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.

© 2012–2017 Michael DeHaan
© 2017 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/mysql_replication_module.html