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/ansible-role-acmetool