letsencrypt

Статус сборки Ansible Galaxy Лицензия

Ansible LetsEncrypt

Роль для автоматизации сертификатов LetsEncrypt.

Стабильность: бета.

Требуемая версия Ansible: 2.x

Что она делает?

Эта роль устанавливает официальный клиент Certbot, устанавливает его и выдает или обновляет сертификат для вашего выбранного домена.

Функционал следующий:

  • Проверено на Ubuntu 14.04 и Debian 8, Debian 9
  • Включает только один домен на роль
  • Работает только в режиме certonly

Пул-реквесты приветствуются для добавления дополнительного функционала.

Установка

Вы можете установить роль напрямую из Galaxy следующим образом:

ansible-galaxy install jaywink.letsencrypt

Подробности

Путь и версия клиента Cerbot

Ubuntu 14.04, Debian 8
  • Клиент будет установлен в /opt/certbot под root
  • Каждый запуск будет загружать код клиента Certbot из проверенной версии. Вы можете установить конкретную версию Certbot с помощью переменной letsencrypt_certbot_version.
Debian 9
  • Клиент будет установлен через APT в стандартное место платформы в соответствии с последней версией в репозиториях.

Важные моменты

  • Список служб, которые должны быть остановлены до и (пере)запущены после получения нового сертификата, может быть настроен с помощью переменной letsencrypt_pause_services.

  • Используется режим certonly, что означает отсутствие автоматической установки веб-сервера.

  • После выдачи сертификата вы можете найти его в /etc/letsencrypt/live/<domainname>

    • Подсказка: используйте это в вашей конфигурации Apache2, например, в вашей основной роли. Просто убедитесь, что вы не пытаетесь запустить Apache2 с активным виртуальным хостом без запуска роли LetsEncrypt сначала!

      SSLCertificateFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/cert.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/privkey.pem
      SSLCertificateChainFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/chain.pem
      
  • Важно! Если эта роль не сработает в части запроса сертификата, возможно, вы остановили службы - будьте осторожны!

  • Если сертификат был запрошен ранее, эта роль автоматически попытается его обновить, если это возможно. Отключите эту функцию, установив letsencrypt_force_renew в false. В этом случае обновление не будет пытаться осуществить, если сертификат не нуждается в обновлении.

  • Поддомен www. будет автоматически запрошен вместе с сертификатом.

    • Чтобы отключить это поведение, установите letsencrypt_request_www в false в ваших переменных.

Требования

Проверено на следующих системах:

  • Ubuntu 14.04 и Debian 8, Debian 9
  • Apache2 и Nginx
  • Ansible 2.x

Переменные роли

Обязательные

  • letsencrypt_domain - Домен, для которого выдается сертификат.
  • letsencrypt_email - Ваш email как владельца сертификата.

Необязательные

  • letsencrypt_certbot_args - Дополнительные аргументы командной строки, которые будут переданы Certbot — будут объединены с letsencrypt_certbot_default_args. Смотрите документацию Certbot для аргументов, которые можно передать.
  • letsencrypt_certbot_default_args - Пожалуйста, смотрите defaults/main.yml, какие аргументы по умолчанию. Также вы можете добавить, чтобы переопределить все аргументы для Certbot, например, для использования другого плагина, установив их с помощью этой переменной.
  • letsencrypt_certbot_verbose - Сделать вывод Certbot в консоль (по умолчанию true).
  • letsencrypt_certbot_version - Установить конкретную версию Certbot, например, git тэг или ветку. Обратите внимание, что минимальная версия Certbot, которую мы поддерживаем, составляет 0.6.0. Не влияет на Debian 9.
  • letsencrypt_force_renew - Определяет, нужно ли всегда пытаться обновить, по умолчанию true.
  • letsencrypt_pause_services - Список служб для остановки/запуска во время вызова Certbot.
  • letsencrypt_request_www - Автоматически запрашивать www. (по умолчанию true).

Пример Playbook

Эта роль лучше всего работает, когда включена непосредственно перед вашей основной ролью сайта, например. Или ее можно использовать в отдельном playbook, как показано ниже.

Эта роль должна выполняться от имени root на целевом хосте.

---
- hosts: myhost
  become: yes
  become_user: root
  roles:
    - role: ansible-letsencrypt
      letsencrypt_email: [email protected]
      letsencrypt_domain: example.com
      letsencrypt_pause_services:
        - apache2

Лицензия

MIT

Информация об авторе

Джейсон Робинсон (@jaywink) - mail@jasonrobinson.me - https://jasonrobinson.me - https://twitter.com/jaywink

Особая благодарность Стефану Грёнке (@gronke) за его работу над расширением этой роли.

Смотрите CONTRIBUTORS для полного списка участников.

О проекте

A role to automate LetsEncrypt certificates.

Установить
ansible-galaxy install jaywink/ansible-letsencrypt
Лицензия
Unknown
Загрузки
6011
Владелец
Pythonista and Djangonaut. Federated social web hacker. Author of Socialhome. Extinction Rebel.