nginx — распространение сертификатов#

Плейбук: playbooks/maintenance/nginx/nginx_update_certs.yml

Роль: roles/nginx_update_certs_BETA

Команда для запуска:

ansible-playbook -i inv/production \
    --vault-id keys@~/.secrets/keys \
    playbook/maintenance/nginx/update_certs_BETA.yml

Добавить новый сайт:#

vim inv/production/group_vars/PROD_NginxFront.yml

Добавляем fqdn сайта в одну из двух переменных:

  • inv_nginx_srv_sites — список всех актуальных вебсайтов;

  • inv_nginx_additional_certs — список доп. сертификатов, например, api.appindex.ru.

Для генерации нового сертификата есть helper script roles/nginx_update_certs_BETA/files/prod/generate_new_cert.sh, подробнее: Скрипт для ПРОДа

Описание#

Сами сертификаты хранятся в roles/nginx_update_certs_BETA/files/.

Закрытые / частные / приватные ключи зашифрованы с помощью ansible-vault (расшифровываются при выполнении плейбука).

Пароль для расшифровки хранится в ~/.secrets/keys (вне репозитория git!).

Команда для шифрования нового ключа:

ansible-vault encrypt \
    --vault-id keys@~/.secrets/keys \
    rustories.appworks.ru.key

Просмотреть зашифрованный файл ключа:

ansible-vault view \
    --vault-id keys@~/.secrets/keys \
    rustories.appworks.ru.key