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.

Über das Projekt

install SSL certificates

Installieren
ansible-galaxy install idiv-biodiversity.ssl_certificates
GitHub Repository
Lizenz
mit
Downloads
47k