jaywink.letsencrypt

构建状态 Ansible Galaxy 许可证

Ansible LetsEncrypt

一个用于自动化LetsEncrypt证书的角色。

稳定性:beta。

要求的Ansible版本:2.x

这个角色做什么?

这个角色将下载官方的Certbot客户端,安装它,并为你选择的域名颁发或续订证书。

功能如下:

  • 在Ubuntu 14.04和Debian 8、Debian 9上测试过
  • 每个角色只能包含一个域名
  • 仅在certonly模式下运行

欢迎提交PR以增加更多功能。

安装

你可以直接从Galaxy安装这个角色,方法如下:

ansible-galaxy install jaywink.letsencrypt

详细信息

Cerbot客户端位置和版本

Ubuntu 14.04,Debian 8
  • 客户端将作为根用户安装在/opt/certbot目录下
  • 每次运行都会从经过验证的版本中拉取Certbot客户端代码。你可以使用变量letsencrypt_certbot_version设置特定的Certbot版本。
Debian 9
  • 客户端将通过APT安装到标准平台位置,按存储库中的最新版本。

需注意事项

  • 可以使用变量letsencrypt_pause_services配置在获得新证书之前停止或(重新)启动的服务列表。

  • 使用certonly模式,这意味着不会自动安装Web服务器。

  • 证书颁发后,你可以在/etc/letsencrypt/live/<domainname>中找到它。

    • 提示:在你的Apache2配置中使用此路径,例如,在你的主角色中。只需确保在Let’s Encrypt角色运行前不要尝试启动Apache2的虚拟主机!

      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 - 作为证书所有者的电子邮件。

可选项

  • 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)。

示例剧本

该角色在你的主站点角色之前包含效果最佳,例如,或可以在单独的剧本中使用,如下所示。

该角色应成为目标主机的根用户。

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

许可证

MIT

作者信息

Jason Robinson (@jaywink) - mail@jasonrobinson.me - https://jasonrobinson.me - https://twitter.com/jaywink

特别感谢Stefan Grönke(@gronke)对扩展这个角色所做的工作。

请参阅CONTRIBUTORS以获取完整的贡献者列表。

关于项目

A role to automate LetsEncrypt certificates.

安装
ansible-galaxy install jaywink.letsencrypt
许可证
Unknown
下载
6.1k
拥有者
Pythonista and Djangonaut. Federated social web hacker. Author of Socialhome. Extinction Rebel.