Ansible-Roles/roles/radius/tasks/mysql.yml
2026-05-08 22:25:29 +03:00

71 lines
2.4 KiB
YAML

---
- name: Install python packages
when: ansible_os_family == "Debian"
ansible.builtin.apt:
name: python3-pymysql
update_cache: true
state: present
- name: Install python packages
when: ansible_os_family == "Redhat"
ansible.builtin.pip:
name: PyMySQL
- name: Create a new database with name 'radius'
when: (db_login_host is defined) and (db_login_host|length > 0)
community.mysql.mysql_db:
login_host: "{{ db_login_host }}"
login_user: root
login_password: "{{ db_root_password | trim }}"
name: radius
state: present
- name: Create a new user with name 'radius'
when: db_type == "mariadb"
community.mysql.mysql_user:
login_host: "{{ db_login_host }}"
login_password: "{{ db_root_password | trim }}"
name: "{{ radius_db_name }}"
host: '%'
priv: '{{ radius_db_name }}.*:ALL,GRANT'
password: "{{ radius_db_password | trim }}"
state: present
- name: Create a new user with name 'radius'
when: db_type == "mysql"
community.mysql.mysql_user:
login_host: "{{ db_login_host }}"
login_password: "{{ db_root_password | trim }}"
name: "{{ radius_db_name }}"
host: '%'
priv: '{{ radius_db_name }}.*:ALL,GRANT'
plugin_auth_string: "{{ radius_db_password | trim }}"
plugin: caching_sha2_password
state: present
- name: Restore database
when: ansible_distribution != "OracleLinux"
community.mysql.mysql_db:
login_host: "{{ db_login_host }}"
login_user: root
login_password: "{{ db_root_password | trim }}"
name: "{{ radius_db_name }}"
state: import
target: /etc/raddb/mods-config/sql/main/mysql/schema.sql
# target: "{{ radius_sql.dest }}"
- name: Restore database
when: ansible_distribution == "OracleLinux" and db_type == "mariadb"
ansible.builtin.shell: mariadb --skip_ssl -h {{ db_login_host }} -u root -p{{ db_root_password | trim }} {{ radius_db_name }} < /etc/raddb/mods-config/sql/main/mysql/schema.sql
# - name: Run several insert queries against db test_db in single transaction
# when: (db_login_host is defined) and (db_login_host|length > 0)
# community.mysql.mysql_query:
# login_host: "{{ db_login_host }}"
# login_user: "{{ radius_db_user }}"
# login_password: "{{ radius_db_password | trim }}"
# login_db: "{{ radius_db_name }}"
# query:
# - INSERT IGNORE INTO {{ radius_db_name }}.radcheck ...
# single_transaction: true