это для переменных который сгруппированы в hosts.ini для prod среды
group_vars/prod
vars_nginx.yml для ролей nginx и nginx_config vars_php.yml для ролей связанные с apache php vault_db.yml здесь указываем секреты в шифрованном ввиде vars.yml здесь описывается структура по котороый сделается root каталог vhost для сервисов , для ролей users,nginx_config,apache_php_[7-9]_conf
ansible-galaxy install -r requirements.ymlhosts.ini
Сами переменные для ролей находться в group_vars
переменные можно описывать и применять в rc
vars.yml самое главная на основе внесенных пременных зависимые роли nginx_config/apache_*_conf/users
Для первичной утсновки основных компанентов (перед жтим lxc/vm должны быть создвны и доступны по ssh)
ansible-playbook -i hosts.ini apache_php7.4.yml --vault-id devops@.pass
ansible-playbook -i hosts.ini apache_php8.0.yml --vault-id devops@.pass
ansible-playbook -i hosts.ini mysql.yml --vault-id devops@.pass
ansible-playbook -i hosts.ini nginx.yml --vault-id devops@.pass
ansible-playbook -i hosts.ini postfix.yml --vault-id devops@.passgroup_vars/prod/*ansible-vault decrypt group_vars/prod/vault_db.yml --vault-id devops@.pass!!! перед этим нужно взять секрет в VAULT с значением VAULT_PASS и содержимое поместить в .pass
и потом не забыть после того как добавили значения нова запечать
ansible-vault encrypt group_vars/prod/vault_db.yml --vault-id devops@.passСоздания сайта и его необходимых компанентов (создание vhost на nginx и apache , создание бд и пользователей в mysql):
ansible-playbook -i hosts.ini apache_php8.0_conf.yml --vault-id devops@.pass
ansible-playbook -i hosts.ini mysql_config.yml --vault-id devops@.pass
ansible-playbook -i hosts.ini nginx_config.yml --vault-id devops@.passпеременные для загрузки в s3 описываються в
roles/backup-functions/templates/rclone.conf.j2
секреты распологаются в group_vars/prod/vault_db.yml
- На runenr должен быть python не ниже 3.6 + мородули pyyaml, json, subprocess
- На runenr должен быть установлен bw client cli (https://bitwarden.com/download/)
- В CI указаны переменный BW_CLIENTID, BW_CLIENTSECRET, BW_PASSWORD. (https://bitwarden.com/help/cli/)
- Расшифровка фвайла group_vars/prod/vault_db.yml
- apache php8 10.213.65.124:8081/server-status
- apahce php7.4 10.213.65.121:8081/server-status
- nginx vts exporter (https://github.com/hnlq715/nginx-vts-exporter) (https://github.com/vozlt/nginx-module-vts) метрики достпны http://10.213.65.137:9913/metrics
- mysql exporter ( создать пользователя для сбора метрик https://learn.netdata.cloud/docs/agent/collectors/go.d.plugin/modules/mysql)
- netdata netdata docs
netdata nginx_vts apache_php7.4
- генерация ssl/tls сертификата , если не указывать alias а просто чисто основное доменное имя то норм , а если нет то выдает ся ошибка так как там ставиться, что в приниципе все и портит , нужно переделаить логику так чтобы анализировать вх. переменную alias_domain и уже на основе нее генерить /tmp/'{{ item.site }}'.ini для послед генерации сертификата
- Автоматизировать установку goteleport в lxc контейнеры.