mirror of https://github.com/ansible/ansible.git
mysql_variables: update MySQL in CI to 8.0 (#63454)
parent
d829a50a5b
commit
c4ce4a6c03
@ -1,4 +1,4 @@
|
|||||||
---
|
---
|
||||||
# defaults file for test_mysql_variables
|
# defaults file for test_mysql_variables
|
||||||
user: 'user1'
|
user: 'user1'
|
||||||
password: 'khH&DYigjg'
|
password: 'khH&DYigjg1#'
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- setup_mysql_db
|
- setup_mysql8
|
||||||
|
@ -1,278 +1,2 @@
|
|||||||
# test code for the mysql_variables module
|
- import_tasks: mysql_variables.yml
|
||||||
# (c) 2014, Wayne Rosario <wrosario@ansible.com>
|
when: ansible_distribution == 'CentOS' and ansible_distribution_major_version >= '7'
|
||||||
|
|
||||||
# This file is part of Ansible
|
|
||||||
#
|
|
||||||
# Ansible is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# Ansible is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable successfully queries a variable
|
|
||||||
#
|
|
||||||
- set_fact: set_name='version'
|
|
||||||
|
|
||||||
- name: read mysql variables (expect changed=false)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- include: assert_var_output.yml changed=false output={{result}} var_name={{set_name}}
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable successfully updates a variable (issue:4568)
|
|
||||||
#
|
|
||||||
- set_fact:
|
|
||||||
set_name: 'delay_key_write'
|
|
||||||
set_value: 'ON'
|
|
||||||
|
|
||||||
- name: set mysql variable
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
|
|
||||||
- name: update mysql variable to same value (expect changed=false)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- include: assert_var.yml changed=false output={{result}} var_name={{set_name}} var_value={{set_value}}
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable successfully updates a variable using single quotes
|
|
||||||
#
|
|
||||||
- set_fact:
|
|
||||||
set_name: 'wait_timeout'
|
|
||||||
set_value: '300'
|
|
||||||
|
|
||||||
- name: set mysql variable to a temp value
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '200'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
|
|
||||||
- name: update mysql variable value (expect changed=true)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- result.queries == ["SET GLOBAL `{{ set_name }}` = {{ set_value }}"]
|
|
||||||
|
|
||||||
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable successfully updates a variable using double quotes
|
|
||||||
#
|
|
||||||
- set_fact:
|
|
||||||
set_name: "wait_timeout"
|
|
||||||
set_value: "400"
|
|
||||||
|
|
||||||
- name: set mysql variable to a temp value
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: "200"
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
|
|
||||||
- name: update mysql variable value (expect changed=true)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable successfully updates a variable using no quotes
|
|
||||||
#
|
|
||||||
- set_fact:
|
|
||||||
set_name: wait_timeout
|
|
||||||
set_value: 500
|
|
||||||
|
|
||||||
- name: set mysql variable to a temp value
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: 200
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
|
|
||||||
- name: update mysql variable value (expect changed=true)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable successfully updates a variable using an expression (e.g. 1024*4)
|
|
||||||
#
|
|
||||||
- name: set mysql variable value to an expression
|
|
||||||
mysql_variables:
|
|
||||||
variable: max_tmp_tables
|
|
||||||
value: "1024*4"
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='Incorrect argument type to variable'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable fails when setting an incorrect value (out of range)
|
|
||||||
#
|
|
||||||
- name: set mysql variable value to a number out of range
|
|
||||||
mysql_variables:
|
|
||||||
variable: max_tmp_tables
|
|
||||||
value: -1
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='Truncated incorrect'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable fails when setting an incorrect value (incorrect type)
|
|
||||||
#
|
|
||||||
- name: set mysql variable value to a non-valid value number
|
|
||||||
mysql_variables:
|
|
||||||
variable: max_tmp_tables
|
|
||||||
value: TEST
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='Incorrect argument type to variable'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable fails when setting an unknown variable
|
|
||||||
#
|
|
||||||
- name: set a non mysql variable
|
|
||||||
mysql_variables:
|
|
||||||
variable: my_sql_variable
|
|
||||||
value: ON
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='Variable not available'
|
|
||||||
|
|
||||||
# ============================================================
|
|
||||||
# Verify mysql_variable fails when setting a read-only variable
|
|
||||||
#
|
|
||||||
- name: set value of a read only mysql variable
|
|
||||||
mysql_variables:
|
|
||||||
variable: character_set_system
|
|
||||||
value: utf16
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='read only variable'
|
|
||||||
|
|
||||||
#=============================================================
|
|
||||||
# Verify mysql_variable works with the login_user and login_password parameters
|
|
||||||
#
|
|
||||||
- name: create mysql user
|
|
||||||
mysql_user:
|
|
||||||
name: '{{user}}'
|
|
||||||
password: '{{password}}'
|
|
||||||
state: present
|
|
||||||
priv: '*.*:ALL'
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
set_name: wait_timeout
|
|
||||||
set_value: 77
|
|
||||||
|
|
||||||
- name: query mysql_variable using login_user and password_password
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
login_user: '{{user}}'
|
|
||||||
login_password: '{{password}}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- include: assert_var_output.yml changed=false output={{result}} var_name={{set_name}}
|
|
||||||
|
|
||||||
- name: set mysql variable to temp value using user login and password (expect changed=true)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: 20
|
|
||||||
login_user: '{{user}}'
|
|
||||||
login_password: '{{password}}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- name: update mysql variable value using user login and password (expect changed=true)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_user: '{{user}}'
|
|
||||||
login_password: '{{password}}'
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
|
||||||
|
|
||||||
#============================================================
|
|
||||||
# Verify mysql_variable fails with an incorrect login_password parameter
|
|
||||||
#
|
|
||||||
- set_fact:
|
|
||||||
set_name: connect_timeout
|
|
||||||
set_value: 10
|
|
||||||
|
|
||||||
- name: query mysql_variable using incorrect login_password
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
login_user: '{{user}}'
|
|
||||||
login_password: 'wrongpassword'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
|
||||||
|
|
||||||
- name: update mysql variable value using incorrect login_password (expect failed=true)
|
|
||||||
mysql_variables:
|
|
||||||
variable: '{{set_name}}'
|
|
||||||
value: '{{set_value}}'
|
|
||||||
login_user: '{{user}}'
|
|
||||||
login_password: 'this is an incorrect password'
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
|
||||||
|
|
||||||
#============================================================
|
|
||||||
# Verify mysql_variable fails with an incorrect login_host parameter
|
|
||||||
#
|
|
||||||
- name: query mysql_variable using incorrect login_host
|
|
||||||
mysql_variables:
|
|
||||||
variable: wait_timeout
|
|
||||||
login_host: '12.0.0.9'
|
|
||||||
login_user: '{{user}}'
|
|
||||||
login_password: '{{password}}'
|
|
||||||
connect_timeout: 5
|
|
||||||
register: result
|
|
||||||
ignore_errors: true
|
|
||||||
|
|
||||||
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
|
||||||
|
|
||||||
- name: remove mysql_user {{user}}
|
|
||||||
mysql_user:
|
|
||||||
name: '{{user}}'
|
|
||||||
state: absent
|
|
||||||
login_unix_socket: '{{ mysql_socket }}'
|
|
||||||
|
@ -0,0 +1,310 @@
|
|||||||
|
# test code for the mysql_variables module
|
||||||
|
# (c) 2014, Wayne Rosario <wrosario@ansible.com>
|
||||||
|
|
||||||
|
# This file is part of Ansible
|
||||||
|
#
|
||||||
|
# Ansible is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Ansible is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable successfully queries a variable
|
||||||
|
#
|
||||||
|
- set_fact: set_name='version'
|
||||||
|
|
||||||
|
- name: read mysql variables (expect changed=false)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- include: assert_var_output.yml changed=false output={{result}} var_name={{set_name}}
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable successfully updates a variable (issue:4568)
|
||||||
|
#
|
||||||
|
- set_fact:
|
||||||
|
set_name: 'delay_key_write'
|
||||||
|
set_value: 'ON'
|
||||||
|
|
||||||
|
- name: set mysql variable
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
|
||||||
|
- name: update mysql variable to same value (expect changed=false)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- include: assert_var.yml changed=false output={{result}} var_name={{set_name}} var_value={{set_value}}
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable successfully updates a variable using single quotes
|
||||||
|
#
|
||||||
|
- set_fact:
|
||||||
|
set_name: 'wait_timeout'
|
||||||
|
set_value: '300'
|
||||||
|
|
||||||
|
- name: set mysql variable to a temp value
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '200'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
|
||||||
|
- name: update mysql variable value (expect changed=true)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- result.queries == ["SET GLOBAL `{{ set_name }}` = {{ set_value }}"]
|
||||||
|
|
||||||
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable successfully updates a variable using double quotes
|
||||||
|
#
|
||||||
|
- set_fact:
|
||||||
|
set_name: "wait_timeout"
|
||||||
|
set_value: "400"
|
||||||
|
|
||||||
|
- name: set mysql variable to a temp value
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: "200"
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
|
||||||
|
- name: update mysql variable value (expect changed=true)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable successfully updates a variable using no quotes
|
||||||
|
#
|
||||||
|
- set_fact:
|
||||||
|
set_name: wait_timeout
|
||||||
|
set_value: 500
|
||||||
|
|
||||||
|
- name: set mysql variable to a temp value
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: 200
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
|
||||||
|
- name: update mysql variable value (expect changed=true)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable successfully updates a variable using an expression (e.g. 1024*4)
|
||||||
|
#
|
||||||
|
- name: set mysql variable value to an expression
|
||||||
|
mysql_variables:
|
||||||
|
variable: max_tmp_tables
|
||||||
|
value: "1024*4"
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='Incorrect argument type to variable'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable fails when setting an incorrect value (out of range)
|
||||||
|
#
|
||||||
|
- name: set mysql variable value to a number out of range
|
||||||
|
mysql_variables:
|
||||||
|
variable: max_tmp_tables
|
||||||
|
value: -1
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='Truncated incorrect'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable fails when setting an incorrect value (incorrect type)
|
||||||
|
#
|
||||||
|
- name: set mysql variable value to a non-valid value number
|
||||||
|
mysql_variables:
|
||||||
|
variable: max_tmp_tables
|
||||||
|
value: TEST
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='Incorrect argument type to variable'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable fails when setting an unknown variable
|
||||||
|
#
|
||||||
|
- name: set a non mysql variable
|
||||||
|
mysql_variables:
|
||||||
|
variable: my_sql_variable
|
||||||
|
value: ON
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='Variable not available'
|
||||||
|
|
||||||
|
# ============================================================
|
||||||
|
# Verify mysql_variable fails when setting a read-only variable
|
||||||
|
#
|
||||||
|
- name: set value of a read only mysql variable
|
||||||
|
mysql_variables:
|
||||||
|
variable: character_set_system
|
||||||
|
value: utf16
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='read only variable'
|
||||||
|
|
||||||
|
#=============================================================
|
||||||
|
# Verify mysql_variable works with the login_user and login_password parameters
|
||||||
|
#
|
||||||
|
- name: create mysql user
|
||||||
|
mysql_user:
|
||||||
|
name: '{{user}}'
|
||||||
|
password: '{{password}}'
|
||||||
|
state: present
|
||||||
|
priv: '*.*:ALL'
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
set_name: wait_timeout
|
||||||
|
set_value: 77
|
||||||
|
|
||||||
|
- name: query mysql_variable using login_user and password_password
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
login_user: '{{user}}'
|
||||||
|
login_password: '{{password}}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- include: assert_var_output.yml changed=false output={{result}} var_name={{set_name}}
|
||||||
|
|
||||||
|
- name: set mysql variable to temp value using user login and password (expect changed=true)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: 20
|
||||||
|
login_user: '{{user}}'
|
||||||
|
login_password: '{{password}}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: update mysql variable value using user login and password (expect changed=true)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_user: '{{user}}'
|
||||||
|
login_password: '{{password}}'
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- include: assert_var.yml changed=true output={{result}} var_name={{set_name}} var_value='{{set_value}}'
|
||||||
|
|
||||||
|
#============================================================
|
||||||
|
# Verify mysql_variable fails with an incorrect login_password parameter
|
||||||
|
#
|
||||||
|
- set_fact:
|
||||||
|
set_name: connect_timeout
|
||||||
|
set_value: 10
|
||||||
|
|
||||||
|
- name: query mysql_variable using incorrect login_password
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
login_user: '{{user}}'
|
||||||
|
login_password: 'wrongpassword'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
||||||
|
|
||||||
|
- name: update mysql variable value using incorrect login_password (expect failed=true)
|
||||||
|
mysql_variables:
|
||||||
|
variable: '{{set_name}}'
|
||||||
|
value: '{{set_value}}'
|
||||||
|
login_user: '{{user}}'
|
||||||
|
login_password: 'this is an incorrect password'
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
||||||
|
|
||||||
|
#============================================================
|
||||||
|
# Verify mysql_variable fails with an incorrect login_host parameter
|
||||||
|
#
|
||||||
|
- name: query mysql_variable using incorrect login_host
|
||||||
|
mysql_variables:
|
||||||
|
variable: wait_timeout
|
||||||
|
login_host: '12.0.0.9'
|
||||||
|
login_user: '{{user}}'
|
||||||
|
login_password: '{{password}}'
|
||||||
|
connect_timeout: 5
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- include: assert_fail_msg.yml output={{result}} msg='unable to connect to database'
|
||||||
|
|
||||||
|
- name: remove mysql_user {{user}}
|
||||||
|
mysql_user:
|
||||||
|
name: '{{user}}'
|
||||||
|
state: absent
|
||||||
|
login_unix_socket: '{{ mysql_socket }}'
|
||||||
|
login_user: root
|
||||||
|
login_password: '{{ root_pass }}'
|
@ -0,0 +1,4 @@
|
|||||||
|
repo_link: https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
|
||||||
|
repo_name: mysql-community
|
||||||
|
mysql_package_name: mysql-community-server
|
||||||
|
my_cnf: /etc/my.cnf
|
@ -0,0 +1,7 @@
|
|||||||
|
[mysqld]
|
||||||
|
datadir=/var/lib/mysql
|
||||||
|
socket=/var/lib/mysql/mysql.sock
|
||||||
|
log-error=/var/log/mysqld.log
|
||||||
|
pid-file=/var/run/mysqld/mysqld.pid
|
||||||
|
default_authentication_plugin=mysql_native_password
|
||||||
|
skip-grant-tables
|
@ -0,0 +1,6 @@
|
|||||||
|
# Copyright: (c) 2019, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru>
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
# Setup MySQL 8:
|
||||||
|
- import_tasks: setup_mysql8.yml
|
||||||
|
when: ansible_distribution == 'CentOS' and ansible_distribution_major_version >= '7'
|
@ -0,0 +1,59 @@
|
|||||||
|
# Copyright: (c) 2019, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru>
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
|
||||||
|
- name: Install Repo
|
||||||
|
yum:
|
||||||
|
name: '{{ repo_link }}'
|
||||||
|
|
||||||
|
- name: Install MySQL community server
|
||||||
|
yum:
|
||||||
|
name: '{{ mysql_package_name }}'
|
||||||
|
|
||||||
|
- name: Copy my.cnf
|
||||||
|
copy:
|
||||||
|
src: my.cnf
|
||||||
|
dest: '{{ my_cnf }}'
|
||||||
|
|
||||||
|
- name: Start MySQL
|
||||||
|
service:
|
||||||
|
name: mysqld
|
||||||
|
state: started
|
||||||
|
|
||||||
|
### Debug #######################
|
||||||
|
#- name: Debug
|
||||||
|
# shell: cat /var/log/mysqld.log
|
||||||
|
#################################
|
||||||
|
|
||||||
|
- name: Check connection to the server
|
||||||
|
shell: 'echo "SHOW DATABASES;" | mysql'
|
||||||
|
|
||||||
|
- name: Check connection to the server
|
||||||
|
shell: "echo \"SHOW VARIABLES LIKE '%version%';\" | mysql"
|
||||||
|
|
||||||
|
- name: Detect socket path
|
||||||
|
shell: >
|
||||||
|
echo "show variables like 'socket'\G" | mysql | grep 'Value: ' | sed 's/[ ]\+Value: //'
|
||||||
|
register: _socket_path
|
||||||
|
|
||||||
|
- name: Set socket path
|
||||||
|
set_fact:
|
||||||
|
mysql_socket: '{{ _socket_path["stdout"] }}'
|
||||||
|
|
||||||
|
- name: Set root pass
|
||||||
|
set_fact:
|
||||||
|
root_pass: "dlsafjlkjdsaK1#"
|
||||||
|
|
||||||
|
- name: Set root password
|
||||||
|
shell: >
|
||||||
|
echo "flush privileges; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{{ root_pass }}';" | mysql
|
||||||
|
|
||||||
|
- name: Change configuration
|
||||||
|
lineinfile:
|
||||||
|
path: '{{ my_cnf }}'
|
||||||
|
line: skip-grant-tables
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Restart MySQL
|
||||||
|
service:
|
||||||
|
name: mysqld
|
||||||
|
state: restarted
|
Loading…
Reference in New Issue