2023-04-13 11:02:04 +00:00
|
|
|
- hosts: mysql
|
|
|
|
gather_facts: no
|
|
|
|
vars:
|
2023-11-13 10:09:09 +00:00
|
|
|
ansible_python_interpreter: /opt/py3/bin/python
|
2023-04-13 11:02:04 +00:00
|
|
|
db_name: "{{ jms_asset.spec_info.db_name }}"
|
2023-11-20 07:27:51 +00:00
|
|
|
check_ssl: "{{ jms_asset.spec_info.use_ssl and not jms_asset.spec_info.allow_invalid_cert }}"
|
2023-04-13 11:02:04 +00:00
|
|
|
|
|
|
|
tasks:
|
|
|
|
- name: Test MySQL connection
|
|
|
|
community.mysql.mysql_info:
|
|
|
|
login_user: "{{ jms_account.username }}"
|
|
|
|
login_password: "{{ jms_account.secret }}"
|
|
|
|
login_host: "{{ jms_asset.address }}"
|
|
|
|
login_port: "{{ jms_asset.port }}"
|
2023-11-20 07:27:51 +00:00
|
|
|
check_hostname: "{{ check_ssl if check_ssl else omit }}"
|
|
|
|
ca_cert: "{{ jms_asset.secret_info.ca_cert | default(omit) if check_ssl else omit }}"
|
|
|
|
client_cert: "{{ jms_asset.secret_info.client_cert | default(omit) if check_ssl else omit }}"
|
|
|
|
client_key: "{{ jms_asset.secret_info.client_key | default(omit) if check_ssl else omit }}"
|
2023-04-13 11:02:04 +00:00
|
|
|
filter: version
|
|
|
|
register: db_info
|
|
|
|
|
|
|
|
- name: MySQL version
|
|
|
|
debug:
|
|
|
|
var: db_info.version.full
|
|
|
|
|
|
|
|
- name: Change MySQL password
|
|
|
|
community.mysql.mysql_user:
|
|
|
|
login_user: "{{ jms_account.username }}"
|
|
|
|
login_password: "{{ jms_account.secret }}"
|
|
|
|
login_host: "{{ jms_asset.address }}"
|
|
|
|
login_port: "{{ jms_asset.port }}"
|
2023-11-20 07:27:51 +00:00
|
|
|
check_hostname: "{{ check_ssl if check_ssl else omit }}"
|
|
|
|
ca_cert: "{{ jms_asset.secret_info.ca_cert | default(omit) if check_ssl else omit }}"
|
|
|
|
client_cert: "{{ jms_asset.secret_info.client_cert | default(omit) if check_ssl else omit }}"
|
|
|
|
client_key: "{{ jms_asset.secret_info.client_key | default(omit) if check_ssl else omit }}"
|
2023-04-13 11:02:04 +00:00
|
|
|
name: "{{ account.username }}"
|
|
|
|
password: "{{ account.secret }}"
|
|
|
|
host: "%"
|
|
|
|
priv: "{{ account.username + '.*:USAGE' if db_name == '' else db_name + '.*:ALL' }}"
|
2023-06-09 08:52:54 +00:00
|
|
|
ignore_errors: true
|
2023-04-13 11:02:04 +00:00
|
|
|
when: db_info is succeeded
|
|
|
|
|
|
|
|
- name: Verify password
|
|
|
|
community.mysql.mysql_info:
|
|
|
|
login_user: "{{ account.username }}"
|
|
|
|
login_password: "{{ account.secret }}"
|
|
|
|
login_host: "{{ jms_asset.address }}"
|
|
|
|
login_port: "{{ jms_asset.port }}"
|
2023-11-20 07:27:51 +00:00
|
|
|
check_hostname: "{{ check_ssl if check_ssl else omit }}"
|
|
|
|
ca_cert: "{{ jms_asset.secret_info.ca_cert | default(omit) if check_ssl else omit }}"
|
|
|
|
client_cert: "{{ jms_asset.secret_info.client_cert | default(omit) if check_ssl else omit }}"
|
|
|
|
client_key: "{{ jms_asset.secret_info.client_key | default(omit) if check_ssl else omit }}"
|
2023-04-13 11:02:04 +00:00
|
|
|
filter: version
|