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