mysql_info – Gather information about MySQL servers
New in version 2.9.
Synopsis
- Gathers information about MySQL servers.
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 |
---|---|---|
ca_cert
path
|
The path to a Certificate Authority (CA) certificate. This option, if used, must specify the same certificate as used by the server.
aliases: ssl_ca |
|
client_cert
path
|
The path to a client public key certificate.
aliases: ssl_cert |
|
client_key
path
|
The path to the client private key.
aliases: ssl_key |
|
config_file
path
|
Default:
"~/.my.cnf"
|
Specify a config file from which user and password are to be read.
|
connect_timeout
integer
|
Default:
30
|
The connection timeout when connecting to the MySQL server.
|
filter
list /
elements=string
|
Limit the collected information by comma separated string or YAML list.
Allowable values are
version ,
databases ,
settings ,
users ,
slave_status ,
slave_hosts ,
master_status ,
engines .
By default, collects all subsets.
You can use '!' before value (for example,
!settings ) to exclude it from the information.
If you pass including and excluding values to the filter, for example,
filter=!settings,version, the excluding values,
!settings in this case, will be ignored.
|
|
login_db
string
|
Database name to connect to.
It makes sense if
login_user is allowed to connect to a specific database only.
|
|
login_host
string
|
Default:
"localhost"
|
Host running the database.
|
login_password
string
|
The password used to authenticate with.
|
|
login_port
integer
|
Default:
3306
|
Port of the MySQL server. Requires
login_host be defined as other than localhost if login_port is used.
|
login_unix_socket
string
|
The path to a Unix domain socket for local connections.
|
|
login_user
string
|
The username used to authenticate with.
|
Notes
Note
- Requires the PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) package on the remote host. The Python package may be installed with apt-get install python-pymysql (Ubuntu; see apt) or yum install python2-PyMySQL (RHEL/CentOS/Fedora; see yum). You can also use dnf install python2-PyMySQL for newer versions of Fedora; see dnf.
- 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
# Display info from mysql-hosts group (using creds from ~/.my.cnf to connect): # ansible mysql-hosts -m mysql_info # Display only databases and users info: # ansible mysql-hosts -m mysql_info -a 'filter=databases,users' # Display only slave status: # ansible standby -m mysql_info -a 'filter=slave_status' # Display all info from databases group except settings: # ansible databases -m mysql_info -a 'filter=!settings' - name: Collect all possible information using passwordless root access mysql_info: login_user: root - name: Get MySQL version with non-default credentials mysql_info: login_user: mysuperuser login_password: mysuperpass filter: version - name: Collect all info except settings and users by root mysql_info: login_user: root login_password: rootpass filter: "!settings,!users" - name: Collect info about databases and version using ~/.my.cnf as a credential file become: yes mysql_info: filter: - databases - version - name: Collect info about databases and version using ~alice/.my.cnf as a credential file become: yes mysql_info: config_file: /home/alice/.my.cnf filter: - databases
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description | |
---|---|---|---|
databases
dictionary
|
if not excluded by filter |
Information about databases.
Sample:
[{'mysql': {'size': 656594}, 'information_schema': {'size': 73728}}]
|
|
size
dictionary
|
if not excluded by filter |
Database size in bytes.
Sample:
{'size': 656594}
|
|
engines
dictionary
|
if not excluded by filter |
Information about the server's storage engines.
Sample:
[{'CSV': {'Comment': 'CSV storage engine', 'Savepoints': 'NO', 'Support': 'YES', 'Transactions': 'NO', 'XA': 'NO'}}]
|
|
master_status
dictionary
|
if master |
Master status information.
Sample:
[{'Binlog_Do_DB': '', 'Binlog_Ignore_DB': 'mysql', 'File': 'mysql-bin.000001', 'Position': 769}]
|
|
settings
dictionary
|
if not excluded by filter |
Global settings (variables) information.
Sample:
[{'innodb_open_files': 300, 'innodb_page_size"': 16384}]
|
|
slave_hosts
dictionary
|
if master |
Slave status information.
Sample:
[{'2': {'Host': '', 'Master_id': 1, 'Port': 3306}}]
|
|
slave_status
dictionary
|
if standby |
Slave status information.
Sample:
[{'192.168.1.101': {'3306': {'replication_user': {'Connect_Retry': 60, 'Exec_Master_Log_Pos': 769, 'Last_Errno': 0}}}}]
|
|
users
dictionary
|
if not excluded by filter |
Users information.
Sample:
[{'localhost': {'root': {'Alter_priv': 'Y', 'Alter_routine_priv': 'Y'}}}]
|
|
version
dictionary
|
if not excluded by filter |
Database server version.
Sample:
{'version': {'major': 5, 'minor': 5, 'release': 60}}
|
|
major
integer
|
if not excluded by filter |
Major server version.
Sample:
5
|
|
minor
integer
|
if not excluded by filter |
Minor server version.
Sample:
5
|
|
release
integer
|
if not excluded by filter |
Release server version.
Sample:
60
|
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- Andrew Klychkov (@Andersson007)
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.9/modules/mysql_info_module.html