jaywink.letsencrypt
Ansible LetsEncrypt
Eine Rolle zur Automatisierung von LetsEncrypt-Zertifikaten.
Stabilität: Beta.
Erforderliche Ansible-Version: 2.x
Was macht es?
Diese Rolle installiert den offiziellen Certbot-Client und stellt ein Zertifikat für Ihre gewählte Domain aus oder erneuert es.
Funktionalität:
- Getestet auf Ubuntu 14.04 und Debian 8, Debian 9
- Nur eine Domain pro Rolleneinbeziehung
- Läuft nur im
certonly
Modus
Pull-Requests sind willkommen, um zusätzliche Funktionen hinzuzufügen.
Installation
Sie können die Rolle direkt von Galaxy wie folgt installieren:
ansible-galaxy install jaywink.letsencrypt
Einzelheiten
Cerbot-Client-Standort und Version
Ubuntu 14.04, Debian 8
- Der Client wird als Root in
/opt/certbot
installiert. - Jeder Lauf zieht den Certbot-Client-Code von einer stabilen Versionsfreigabe. Sie können eine spezifische Certbot-Version mit der Variable
letsencrypt_certbot_version
festlegen.
Debian 9
- Der Client wird über APT an den standardmäßigen Plattformstandort gemäß der neuesten Version in den Repositories installiert.
Wichtige Informationen
Eine Liste von Diensten, die vor der Beantragung und (Wieder-)Inbetriebnahme eines neuen Zertifikats gestoppt werden sollen, kann mit der Variablen
letsencrypt_pause_services
konfiguriert werden.Der Modus
certonly
wird verwendet, was bedeutet, dass keine automatische Webserver-Installation erfolgt.Nach der Ausstellung des Zertifikats finden Sie es in
/etc/letsencrypt/live/<domainname>
Tipp: Verwenden Sie dies in Ihrer Apache2-Konfiguration, z.B. in Ihrer Hauptrolle. Stellen Sie sicher, dass Sie Apache2 nicht starten, während der virtuelle Host aktiv ist, ohne zuerst die LetsEncrypt-Rolle auszuführen!
SSLCertificateFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/chain.pem
Hinweis! Wenn diese Rolle im Zertifikatsantragsteil fehlschlägt, könnten Sie Dienste gestoppt haben – seien Sie vorsichtig!
Wenn das Zertifikat zuvor beantragt wurde, versucht diese Rolle automatisch, es zu erneuern, wenn möglich. Deaktivieren Sie diese Funktionalität, indem Sie
letsencrypt_force_renew
auffalse
setzen. In diesem Fall wird keine Erneuerung versucht, wenn das Zertifikat nicht zur Erneuerung fällig ist.Eine
www.
-Subdomain wird automatisch zusammen mit dem Zertifikat angefordert.- Um dieses Verhalten zu deaktivieren, setzen Sie
letsencrypt_request_www
in Ihren Variablen auffalse
.
- Um dieses Verhalten zu deaktivieren, setzen Sie
Anforderungen
Getestet mit den folgenden:
- Ubuntu 14.04 und Debian 8, Debian 9
- Apache2 und Nginx
- Ansible 2.x
Rollenvariablen
Erforderlich
letsencrypt_domain
- Domain, für die das Zertifikat ist.letsencrypt_email
- Ihre E-Mail-Adresse als Zertifikatsinhaber.
Optional
letsencrypt_certbot_args
- Zusätzliche Befehlszeilenargumente, die an Certbot übergeben werden sollen – werden mitletsencrypt_certbot_default_args
kombiniert. Siehe die Certbot-Dokumentation für Argumente, die Sie übergeben können.letsencrypt_certbot_default_args
- Bitte sehen Siedefaults/main.yml
, was die Standardargumente sind. Sie können alle Argumente für Certbot überschreiben, z.B. um ein anderes Plugin zu verwenden.letsencrypt_certbot_verbose
- Lassen Sie Certbot Ausgaben auf der Konsole machen (Standardtrue
).letsencrypt_certbot_version
- Setzen Sie eine spezifische Certbot-Version, z.B. ein Git-Tag oder einen Branch. Beachten Sie, dass die niedrigste unterstützte Version von Certbot 0.6.0 ist. Hat keine Auswirkung auf Debian 9.letsencrypt_force_renew
- Ob die Erneuerung immer versucht werden soll, Standard isttrue
.letsencrypt_pause_services
- Liste von Diensten, die während des Aufrufs von Certbot gestoppt/starten werden sollen.letsencrypt_request_www
- Automatische Anfrage vonwww.
(Standardtrue
).
Beispiel-Playbook
Diese Rolle funktioniert am besten, wenn sie direkt vor Ihrer Hauptstartrolle eingefügt wird, z.B. oder sie kann in einem individuellen Playbook verwendet werden, z.B. wie folgt.
Diese Rolle sollte Root-Rechte auf dem Zielhost erhalten.
---
- hosts: myhost
become: yes
become_user: root
roles:
- role: ansible-letsencrypt
letsencrypt_email: [email protected]
letsencrypt_domain: example.com
letsencrypt_pause_services:
- apache2
Lizenz
MIT
Autor Informationen
Jason Robinson (@jaywink) - mail@jasonrobinson.me - https://jasonrobinson.me - https://twitter.com/jaywink
Besonderer Dank an Stefan Grönke (@gronke) für seine Arbeit zur Erweiterung dieser Rolle.
Siehe CONTRIBUTORS für eine vollständige Liste der Mitwirkenden.
ansible-galaxy install jaywink.letsencrypt