community.general.mysql_info (0.2.1) — module

Gather information about MySQL servers

Authors: Andrew Klychkov (@Andersson007)

Install collection

Install with ansible-galaxy collection install community.general:==0.2.1


Add to requirements.yml

  collections:
    - name: community.general
      version: 0.2.1

Description

Gathers information about MySQL servers.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# 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
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Get MySQL version with non-default credentials
  mysql_info:
    login_user: mysuperuser
    login_password: mysuperpass
    filter: version
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Collect all info except settings and users by root
  mysql_info:
    login_user: root
    login_password: rootpass
    filter: "!settings,!users"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Collect info about databases and version using ~/.my.cnf as a credential file
  become: yes
  mysql_info:
    filter:
    - databases
    - version
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- 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
    - version
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Collect info about databases including empty and excluding their sizes
  become: yes
  mysql_info:
    config_file: /home/alice/.my.cnf
    filter:
    - databases
    exclude_fields: db_size
    return_empty_dbs: yes

Inputs

    
filter:
    description:
    - Limit the collected information by comma separated string or YAML list.
    - Allowable values are C(version), C(databases), C(settings), C(global_status), C(users),
      C(engines), C(master_status), C(slave_status), C(slave_hosts).
    - By default, collects all subsets.
    - You can use '!' before value (for example, C(!settings)) to exclude it from the
      information.
    - If you pass including and excluding values to the filter, for example, I(filter=!settings,version),
      the excluding values, C(!settings) in this case, will be ignored.
    elements: str
    type: list

ca_cert:
    aliases:
    - ssl_ca
    description:
    - The path to a Certificate Authority (CA) certificate. This option, if used, must
      specify the same certificate as used by the server.
    type: path

login_db:
    description:
    - Database name to connect to.
    - It makes sense if I(login_user) is allowed to connect to a specific database only.
    type: str

client_key:
    aliases:
    - ssl_key
    description:
    - The path to the client private key.
    type: path

login_host:
    default: localhost
    description:
    - Host running the database.
    - In some cases for local connections the I(login_unix_socket=/path/to/mysqld/socket),
      that is usually C(/var/run/mysqld/mysqld.sock), needs to be used instead of I(login_host=localhost).
    type: str

login_port:
    default: 3306
    description:
    - Port of the MySQL server. Requires I(login_host) be defined as other than localhost
      if login_port is used.
    type: int

login_user:
    description:
    - The username used to authenticate with.
    type: str

client_cert:
    aliases:
    - ssl_cert
    description:
    - The path to a client public key certificate.
    type: path

config_file:
    default: ~/.my.cnf
    description:
    - Specify a config file from which user and password are to be read.
    type: path

exclude_fields:
    description:
    - List of fields which are not needed to collect.
    - 'Supports elements: C(db_size). Unsupported elements will be ignored'
    elements: str
    type: list
    version_added: 0.2.0
    version_added_collection: community.general

login_password:
    description:
    - The password used to authenticate with.
    type: str

connect_timeout:
    default: 30
    description:
    - The connection timeout when connecting to the MySQL server.
    type: int

return_empty_dbs:
    default: false
    description:
    - Includes names of empty databases to returned dictionary.
    type: bool

login_unix_socket:
    description:
    - The path to a Unix domain socket for local connections.
    type: str

Outputs

databases:
  contains:
    size:
      description: Database size in bytes.
      returned: if not excluded by filter
      sample:
        size: 656594
      type: dict
  description: Information about databases.
  returned: if not excluded by filter
  sample:
  - information_schema:
      size: 73728
    mysql:
      size: 656594
  type: dict
engines:
  description: Information about the server's storage engines.
  returned: if not excluded by filter
  sample:
  - CSV:
      Comment: CSV storage engine
      Savepoints: 'NO'
      Support: 'YES'
      Transactions: 'NO'
      XA: 'NO'
  type: dict
global_status:
  description: Global status information.
  returned: if not excluded by filter
  sample:
  - Innodb_buffer_pool_read_requests: 123
    Innodb_buffer_pool_reads: 32
  type: dict
master_status:
  description: Master status information.
  returned: if master
  sample:
  - Binlog_Do_DB: ''
    Binlog_Ignore_DB: mysql
    File: mysql-bin.000001
    Position: 769
  type: dict
settings:
  description: Global settings (variables) information.
  returned: if not excluded by filter
  sample:
  - innodb_open_files: 300
    innodb_page_size": 16384
  type: dict
slave_hosts:
  description: Slave status information.
  returned: if master
  sample:
  - '2':
      Host: ''
      Master_id: 1
      Port: 3306
  type: dict
slave_status:
  description: Slave status information.
  returned: if standby
  sample:
  - 192.168.1.101:
      '3306':
        replication_user:
          Connect_Retry: 60
          Exec_Master_Log_Pos: 769
          Last_Errno: 0
  type: dict
users:
  description: Users information.
  returned: if not excluded by filter
  sample:
  - localhost:
      root:
        Alter_priv: Y
        Alter_routine_priv: Y
  type: dict
version:
  contains:
    major:
      description: Major server version.
      returned: if not excluded by filter
      sample: 5
      type: int
    minor:
      description: Minor server version.
      returned: if not excluded by filter
      sample: 5
      type: int
    release:
      description: Release server version.
      returned: if not excluded by filter
      sample: 60
      type: int
  description: Database server version.
  returned: if not excluded by filter
  sample:
    version:
      major: 5
      minor: 5
      release: 60
  type: dict

See also