ssl_certificates
Ansible Роль: SSL Сертификаты
Роль Ansible, которая устанавливает SSL сертификаты.
Содержание
Требования
- Ansible 2.4+
Переменные Роли
Эта роль требует всего одну переменную, хотя она выглядит несколько громоздко. Переменная представляет собой список сертификатов. Каждый сертификат требует key
и cert
, а также опционально chain
.
ssl_certificates:
- name: ssl сертификат для blah.example.com
key:
content: '{{ vault_ssl_certificate_key }}'
dest: /path/to/key.pem
cert:
src: path/to/cert.pem
dest: /path/to/cert.pem
chain:
src: path/to/chain
dest: /path/to/chain
- name: ssl сертификат для bippy.example.com
key:
...
Примечание: Рекомендуется поместить ключ в хранилище!
Примечание: Убедитесь, что Ansible может найти файлы src
. group_vars/group
и host_vars/host
не ищутся автоматически. Если вы хотите хранить файлы там, используйте, например, host_vars/host/example.com.pem
.
Примечание: key
, cert
и chain
также позволяют установить пользовательский setype
, по умолчанию это cert_t
.
Примечание: key
также позволяет задать список для предоставления дополнительных прав на чтение через записи ACL. Это для сервисов, которые должны иметь доступ к ключу, но не запускаются от root и потом теряют привилегии.
ssl_certificates:
- name: ssl сертификат для blah.example.com
key:
content: '{{ vault_ssl_certificate_key }}'
dest: /path/to/key.pem
acl_users:
- service-user-a
- service-user-b
cert:
...
Повторное использование Переменных Путей
Вы можете повторно использовать переменные путей для конфигурационных переменных других ролей, например:
---
ssl_certificates:
- name: ssl сертификат для blah.example.com
...
- name: ...
...
# Поскольку ssl_certificates является списком, необходимо индексировать с помощью [n]
apache_ssl_cert_key_file: '{{ ssl_certificates[0].key.dest }}'
apache_ssl_cert_file: '{{ ssl_certificates[0].cert.dest }}'
apache_ssl_cert_chain_file: '{{ ssl_certificates[0].chain.dest }}'
# здесь используется второй ключ для postfix
postfix_smtp_tls_key_file: '{{ ssl_certificates[1].key.dest }}'
postfix_smtp_tls_cert_file: '{{ ssl_certificates[1].cert.dest }}'
postfix_smtpd_tls_key_file: '{{ ssl_certificates[1].key.dest }}'
postfix_smtpd_tls_cert_file: '{{ ssl_certificates[1].cert.dest }}'
...
Зависимости
Нет.
Пример Плейбука
Добавьте в requirements.yml
:
---
- src: idiv-biodiversity.ssl_certificates
...
Скачайте:
$ ansible-galaxy install -r requirements.yml
Основной Плейбук
Напишите основной плейбук:
---
- name: главный сервер
hosts: head
roles:
- role: idiv-biodiversity.ssl_certificates
tags:
- сертификаты
- ssl-сертификаты
...
Зависимость Роли
Определите зависимость роли в meta/main.yml
:
---
dependencies:
- role: idiv-biodiversity.ssl_certificates
tags:
- сертификаты
- ssl-сертификаты
...
Лицензия
MIT
Информация об Авторе
Эта роль была создана в 2019 году Кристианом Краусом (также известен как wookietreiber на GitHub) и Дирком Сарпе (также известен как dirks на GitHub), оба системные администраторы Германского Центра Исследования Интегративной Биоразнообразия (iDiv), основана на черновике Бена Лангенберга (также известного как sloan87 на GitHub).
ansible-galaxy install idiv-biodiversity/ssl-certificates