Добавить в проект роль Ansible установки сервера БД.
Создаем роль для деплоя MySql:
cd ~/ansible/roles && ansible-galaxy init deploy_mysql
Создаем файл тасков ~/ansible/roles/deploy_mysql/tasks/main.yml:
---
# vars file for deploy_mysql
#
mysql_root_password: "root4ever"
Шифруем (vault):
cd ~/ansible && ansible-vault encrypt roles/deploy_mysql/vars/main.yml
Создаем файл с переменными ~/ansible/roles/deploy_mysql/vars/mysql_vars.yml:
mysql_packages:
- mariadb-client
- mariadb-server
- python3-mysqldb
mysql_python_package_debian: python3-mysqldb
mysql_enabled_on_startup: true
mysql_port: "3306"
mysql_bind_address: '0.0.0.0'
mysql_databases:
- name: wp_geek
mysql_users:
- name: wp_geek_user
host: "%"
password: geek_pwd
priv: "wp_geek.*:ALL"
Создаем плейбук для развертывания MySQL и базы wp_geek ~/ansible/roles/deploy_mysql/deploy_mysql.yml:
---
- hosts: mysqldb
become: yes
vars_files:
- vars/main.yml
- vars/mysql_vars.yml
roles:
- role: geerlingguy.mysql
Запускаем плейбук:
cd ~/ansible && ansible-playbook roles/deploy_vm_ovirt/deploy_vm_ovirt.yml --vault-password-file ./vault.pass
Задание успешно выполнено:
ansible-playbook -i inventory/hosts.yml roles/deploy_mysql/deploy_mysql.yml --vault-password-file ./vault.pass
PLAY [mysqldb] ********************************************************************************************************************************
TASK [Gathering Facts] ********************************************************************************************************************************
ok: [mysqldb]
~ Skip output ~
RUNNING HANDLER [geerlingguy.mysql : restart mysql] ************************************************************************************************************************************************************
[WARNING]: Ignoring "sleep" as it is not used in "systemd"
changed: [mysqldb]
PLAY RECAP ********************************************************************************************************************************
mysqldb : ok=37 changed=9 unreachable=0 failed=0 skipped=19 rescued=0 ignored=0
Проверим работу:
И с РМ DBA, хост доступен по ЛВС, коннект к созданной БД под созданным пользователем есть:
Роль работает. Но нам же надо развернуть ее автоматически..
Создаем ~/ansible/playbooks/main.yml:
---
- name: deploy_vm_ovirt
import_playbook: /home/sa/ansible/roles/deploy_vm_ovirt/deploy_vm_ovirt.yml
- name: deploy_mysql
import_playbook: /home/sa/ansible/roles/deploy_mysql/deploy_mysql.yml
Проверяем:
cd ~/ansible && ansible-playbook playbooks/mail.yaml --vault-password-file ./vault.pass
Результат: