L-P.acmetool
ansible-role-acmetool
Установите, настройте и запустите acmetool для генерации TLS сертификатов Let's Encrypt.
acmetool будет настроен на использование режима redirector. Он будет слушать
порт 80 и перенаправлять (HTTP 308) все,
что не является запросом на вызов проверки.
Смотрите acme на GitHub для получения подробной информации.
Требования
Необходим флаг
become: true, так как большинство действий нужно выполнять от имени root, остальные действия выполняются от имениacme, который будет создан ролью.Вам нужно открыть порт 80/TCP, чтобы
acmetoolмог принимать запросы на проверку.Поскольку по умолчанию используется режим
redirector, HTTP сервер не требуется. Вы можете установить любой сервер, который хотите использовать после выполнения этой роли, чтобы он мог использовать сгенерированные сертификаты.Выберите вашего провайдера и укажите его API-адрес в
acmetool_server, см. ниже.Требуется пакет
cronдля автоматического обновления сертификатов.
Переменные роли
Обязательные
# Электронная почта, используемая для регистрации доменов в LetsEncrypt.
acmetool_email: "[email protected]"
# список доменов для регистрации, разделённых пробелами.
acmetool_domains: "www.example.com example.com"
Прочие
# Сервер CA. По умолчанию используется сервер acme-staging для тестирования.
# Вам нужно изменить это на производственный сервер :
# https://acme-v01.api.letsencrypt.org/directory
acmetool_server: "https://acme.example.com/directory"
# Измените это на RSA, если ваш сервер не поддерживает EC ключи (например, murmur).
acmetool_key_type: "ecdsa"
# Если вы не доверяете acmetool запускать хуки от имени root (sudo), установите это значение в false.
acmetool_enable_hooks: false
Смотрите значения по умолчанию для полного списка.
Пример плейбука
- hosts: all
roles:
- { role: "L-P.acmetool", become: true }
Поскольку на Debian службы автоматически включаются и запускаются с их
умолчательными настройками при установке, nginx не сможет установить и оставит
dpkg в полом состоянии.
Чтобы избежать этого, вы можете выполнить следующий плейбук между установкой
acmetool и nginx. Он будет выполнен только в том случае, если nginx еще не настроен.
- hosts: all
become: true
tasks:
- name: Остановить acmetool
tags: "nginx"
command: "service acmetool stop"
args:
creates: "/etc/nginx/nginx.conf"
Вы можете адаптировать это для любой другой службы, которая дает такую же ошибку.
Лицензия
MIT
ansible-galaxy install L-P.acmetool