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 | Default: None | 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 | Default: None | The path to a Unix domain socket for local connections. |
login_user | Default: None | The username used to authenticate with. |
master_auto_position (added in 2.0) | Default: None | 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) | Default: None | 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) | Default: None | The path to a client public key certificate. |
ssl_key (added in 2.0) | Default: None | 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
andlogin_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.
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.5/modules/mysql_replication_module.html