certbot
Ansible Роль: Certbot (для Let's Encrypt)
Устанавливает и настраивает Certbot (для Let's Encrypt).
Требования
Если установка производится из исходников, необходим Git. Вы можете установить Git, используя роль geerlingguy.git
.
Переменные роли
Переменная certbot_install_from_source
контролирует, будет ли Certbot установлен из Git или через пакетный менеджер. Последний вариант является значением по умолчанию, поэтому переменная по умолчанию имеет значение no
.
certbot_auto_renew: true
certbot_auto_renew_user: "{{ ansible_user }}"
certbot_auto_renew_hour: 3
certbot_auto_renew_minute: 30
По умолчанию эта роль настраивает cron-задание, которое запускается под указанной учетной записью пользователя в заданный час и минуту каждый день. По умолчанию команда certbot renew
(или certbot-auto renew
) выполняется через cron каждый день в 03:30:00 от имени пользователя, указанного в вашем Ansible плейбуке. Лучше всего установить пользователь/час/минуту так, чтобы обновление происходило в период низкой нагрузки и выполнялось не от имени root.
Установка из исходников Git
Если необходимо, вы можете установить Certbot из его Git-репозитория. Это может быть полезно в нескольких случаях, особенно когда у старых дистрибутивов нет доступных пакетов Certbot (например, CentOS < 7, Ubuntu < 16.10 и Debian < 8).
certbot_install_from_source: no
certbot_repo: https://github.com/certbot/certbot.git
certbot_version: master
certbot_keep_updated: yes
Опции репозитория Certbot Git. Чтобы установить из исходников, установите certbot_install_from_source
в yes
. Это клонирует указанный certbot_repo
, соблюдая установку certbot_version
. Если certbot_keep_updated
установлено в yes
, репозиторий обновляется каждый раз при запуске этой роли.
certbot_dir: /opt/certbot
Каталог, в который будет клонирован Certbot.
DNS-провайдеры
Если вы используете DNS-провайдера, такого как Cloudflare или аналогичный, доступны следующие переменные:
certbot_dns_provider: cloudflare
certbot_dns_credentials:
api_token: ваш_api_токен_dns_провайдера
certbot_dns_provider_propagation_seconds: 60
Допустимые параметры для certbot_dns_credentials
зависят от DNS-провайдера. Смотрите certbot --help all
для подробностей.
Зависимости
Нет.
Пример плейбука
- hosts: servers
vars:
certbot_auto_renew_user: ваше_имя_пользователя
certbot_auto_renew_minute: 20
certbot_auto_renew_hour: 5
# certbot_agree_tos: "--agree-tos" # Раскомментируйте, чтобы согласиться
roles:
- geerlingguy.certbot
После установки вы можете создавать сертификаты, используя скрипт certbot
(или certbot-auto
), который по умолчанию устанавливается в указанный certbot_dir
(при использовании Git). Вот несколько примерных команд для настройки сертификатов с помощью Certbot:
# Автоматически добавьте сертификаты для всех виртуальных хостов Apache (используйте с осторожностью!).
/opt/certbot/certbot-auto --apache
# Сгенерируйте сертификаты, но не изменяйте конфигурацию Apache (безопаснее).
/opt/certbot/certbot-auto --apache certonly
По умолчанию эта роль добавляет cron-задание, которое будет обновлять все установленные сертификаты раз в день в выбранный вами час и минуту.
Вы можете протестировать автообновление (без фактического обновления сертификата) с помощью команды:
/opt/certbot/certbot-auto renew --dry-run
Смотрите полную документацию и параметры на сайте Certbot.
Лицензия
MIT / BSD
Информация об авторе
- Эта роль была создана в 2016 году Джеффом Гирлингом, автором Ansible for DevOps.
- Она была дополнительно модифицирована и поддерживается Galaxy Europe.
Certbot with custom additions
ansible-galaxy install usegalaxy-eu/ansible-certbot