mysql_replication - Manage MySQL replication
New in version 1.3.
Synopsis
- Manages MySQL server replication, slave, master status get and change master host.
 
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 |  
  |    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 |  
  |    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_passwordandlogin_userare 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.
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.6/modules/mysql_replication_module.html