idiv-biodiversity.ssl_certificates
Ansible Rolle: SSL-Zertifikate
Eine Ansible-Rolle, die SSL-Zertifikate installiert.
Inhaltsverzeichnis
Anforderungen
- Ansible 2.4+
Rollenvariablen
Diese Rolle benötigt nur eine Variable, auch wenn sie zunächst etwas langwierig aussieht. Die Variable ist im Grunde eine Liste von Zertifikaten. Jedes Zertifikat benötigt einen key
und ein cert
, optional auch eine chain
.
ssl_zertifikate:
- name: SSL-Zertifikat für blah.example.com
key:
content: '{{ vault_ssl_certificate_key }}'
dest: /pfad/zum/key.pem
cert:
src: pfad/zum/cert.pem
dest: /pfad/zum/cert.pem
chain:
src: pfad/zum/chain
dest: /pfad/zum/chain
- name: SSL-Zertifikat für bippy.example.com
key:
...
Hinweis: Es wird empfohlen, den Schlüssel in ein Vault zu legen!
Hinweis: Stellen Sie sicher, dass Ansible die src
-Dateien finden kann. group_vars/group
und host_vars/host
werden nicht automatisch durchsucht. Wenn Sie die Dateien dort behalten möchten, verwenden Sie z.B. host_vars/host/example.com.pem
.
Hinweis: key
, cert
und chain
erlauben auch das Setzen eines benutzerdefinierten setype
, Standard ist cert_t
.
Hinweis: key
erlaubt auch eine Liste, um zusätzliche Lesezugriffsrechte über ACL-Einträge zu geben. Dies ist für Dienste gedacht, die auf den Schlüssel zugreifen müssen, aber nicht als root starten und dann die Berechtigungen herabsetzen.
ssl_zertifikate:
- name: SSL-Zertifikat für blah.example.com
key:
content: '{{ vault_ssl_certificate_key }}'
dest: /pfad/zum/key.pem
acl_users:
- service-user-a
- service-user-b
cert:
...
Wiederverwendung von Zielvariablen
Sie können die Ziel-Variablen für die Konfigurationsvariablen anderer Rollen wiederverwenden, z.B.:
---
ssl_zertifikate:
- name: SSL-Zertifikat für blah.example.com
...
- name: ...
...
# Da ssl_zertifikate eine Liste ist, müssen Sie mit [n] indizieren
apache_ssl_cert_key_file: '{{ ssl_zertifikate[0].key.dest }}'
apache_ssl_cert_file: '{{ ssl_zertifikate[0].cert.dest }}'
apache_ssl_cert_chain_file: '{{ ssl_zertifikate[0].chain.dest }}'
# hier wird der zweite Schlüssel für Postfix verwendet
postfix_smtp_tls_key_file: '{{ ssl_zertifikate[1].key.dest }}'
postfix_smtp_tls_cert_file: '{{ ssl_zertifikate[1].cert.dest }}'
postfix_smtpd_tls_key_file: '{{ ssl_zertifikate[1].key.dest }}'
postfix_smtpd_tls_cert_file: '{{ ssl_zertifikate[1].cert.dest }}'
...
Abhängigkeiten
Keine.
Beispiel-Playbook
Fügen Sie zu requirements.yml
hinzu:
---
- src: idiv-biodiversity.ssl_zertifikate
...
Herunterladen:
$ ansible-galaxy install -r requirements.yml
Top-Level-Playbook
Schreiben Sie ein Top-Level-Playbook:
---
- name: Hauptserver
hosts: head
roles:
- role: idiv-biodiversity.ssl_zertifikate
tags:
- zertifikate
- ssl-zertifikate
...
Rollenabhängigkeit
Definieren Sie die Rollenabhängigkeit in meta/main.yml
:
---
dependencies:
- role: idiv-biodiversity.ssl_zertifikate
tags:
- zertifikate
- ssl-zertifikate
...
Lizenz
MIT
Autoreninformation
Diese Rolle wurde 2019 von Christian Krause aka wookietreiber bei GitHub und Dirk Sarpe aka dirks bei GitHub erstellt, beide Systemadministratoren am Deutschen Zentrum für integrative Biodiversitätsforschung (iDiv), basierend auf einem Entwurf von Ben Langenberg aka sloan87 bei GitHub.
ansible-galaxy install idiv-biodiversity.ssl_certificates