coopdevs.certbot_nginx
Certbot NGINX
これは、Ubuntu 16.04 および Ubuntu 18.04 に certbot と NGINX プラグインをインストールするためのシンプルな Ansible ロールです。
このロールは以下のことを行います:
certbotの PPA リポジトリを追加します。certbotとpython-certbot-nginxパッケージをインストールします。certbotパッケージはrenewの cron ジョブと systemd タイマーを追加します(詳細情報)。- 指定された
domain_nameに対して Let's Encrypt の SSL 証明書を生成します。
警告
すでに /etc/letsencrypt 内のファイルを指しているサイトが Nginx にインストールされている場合、証明書の作成タスクは失敗します(例)。
一般的に、Nginx をインストールおよび設定する他のロールの前にこのロールを実行することが推奨されます。
ロール変数
domain_name: www.mydomain.io
letsencrypt_email: [email protected]
certbot_nginx_cert_name: mycert # オプション
certbot_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # オプション
certbot_nginx_version: 0.31.0-1+ubuntu{{ ansible_distribution_version }}.1+certbot+1 # オプション
もし設定した場合、certbot_nginx_cert_name の値は certbot の --cert-name 引数に渡され、certbot delete などのコマンドで証明書を識別するために使用されます。 certbot certificates を実行すると、この名前で識別された証明書のリストが表示されます。この名前はまた、証明書のファイルパスとして /etc/letsencrypt/live/ に使用されます。
例プレイブック - 単一の証明書
# プレイブック
- hosts: servers
roles:
- role: coopdevs.certbot_nginx
vars:
domain_name: www.mydomain.io
letsencrypt_email: [email protected]
例プレイブック - 複数の証明書を作成
同じホストで複数の証明書を生成および管理できます。
domain_names 変数を定義し、このロールをループ内で含むロールを設定できます。
# プレイブック
- hosts: servers
roles:
- role: coopdevs.certbot_nginx
vars:
letsencrypt_email: [email protected]
- role: certificates
vars:
domain_names:
- community.coopdevs.org
- forms.coopdevs.org
証明書を生成するために certbot_nginx ロールを含むカスタムロールを作成します:
# certificates.yml ロール
---
- name: SSL証明書のインストール
include_role:
name: vendor/coopdevs.certbot_nginx
tasks_from: certificate.yml
with_items: "{{ domain_names }}"
loop_control:
loop_var: domain_name
loop_controlを宣言してwith_itemループのitem変数をloop_var値であるdomain_nameにマッピングする必要があります。loop_controlドキュメントを参照してください。
既存の証明書の更新
証明書が作成されてからサイトの詳細が変更された場合、ドメインリストを更新できます。ロールは証明書に存在するドメインと提供されたドメインリストの違いをチェックし、証明書を更新する必要があるかどうかを選択します。更新プロセスを強制したい場合は、certbot_force_update: true を定義するか、コマンドラインで --extra-vars "certbot_force_update=true" を渡すことで可能です。
Let's Encrypt ステージング環境
このロールには letsencrypt_staging 変数が含まれており、デフォルトは no です。開発やデバッグの目的で、yes に設定することができます。たとえば、コマンドラインで変数を渡すのように --extra-vars "letsencrypt_staging=yes" とします。
これにより、Let's Encrypt ステージング環境が使用され、レート制限に直面する可能性が低くなります。
ライセンス
BSD
著者情報
Coopdevs http://coopdevs.org
free software for Social and Solidarity Economy
ansible-galaxy install coopdevs.certbot_nginx