--- - name: Playbook to test bug to connect to MySQL/MariaDB server hosts: all gather_facts: false vars: mysql_parameters: &mysql_params login_user: '{{ mysql_user }}' login_password: '{{ mysql_password }}' login_host: '{{ mysql_host }}' login_port: '{{ mysql_primary_port }}' tasks: # Create default MySQL config file with credentials - name: mysql_info - create default config file template: src: my.cnf.j2 dest: /root/.my.cnf mode: '0400' # Create non-default MySQL config file with credentials - name: mysql_info - create non-default config file template: src: tests/integration/targets/test_mysql_info/templates/my.cnf.j2 dest: /root/non-default_my.cnf mode: '0400' ############### # Do tests # Access by default cred file - name: mysql_info - collect default cred file mysql_info: login_user: '{{ mysql_user }}' login_host: '{{ mysql_host }}' login_port: '{{ mysql_primary_port }}' register: result - assert: that: - result is not changed - db_version in result.version.full - result.settings != {} - result.global_status != {} - result.databases != {} - result.engines != {} - result.users != {} # Access by non-default cred file - name: mysql_info - check non-default cred file mysql_info: login_user: '{{ mysql_user }}' login_host: '{{ mysql_host }}' login_port: '{{ mysql_primary_port }}' config_file: /root/non-default_my.cnf register: result - assert: that: - result is not changed - result.version != {} # Remove cred files - name: mysql_info - remove cred files file: path: '{{ item }}' state: absent with_items: - /root/.my.cnf - /root/non-default_my.cnf # Access with password - name: mysql_info - check access with password mysql_info: <<: *mysql_params register: result - assert: that: - result is not changed - result.version != {}