venafi.ansible_role_venafi

Venafi Apache 2.0 Lizenz Gemeinschaft unterstützt Kompatibel mit TPP 17.3+ & VaaS
:warning: Dieses gemeinschaftlich unterstützte Open-Source-Projekt hat sein ENDE erreicht und erhält nur noch sicherheitsrelevante Updates und kritische Fehlerbehebungen. Alle Funktionalitäten dieses Projekts (und mehr) sind in der Ansible Collection für Venafi verfügbar, die aktiv weiterentwickelt wird. Der Wechsel ist einfach. Installieren Sie die Sammlung venafi.machine_identity über Ansible Galaxy und ersetzen Sie role: venafi.ansible_role_venafi durch role: venafi.machine_identity.certificate in Ihren Playbooks. Bitte wechseln Sie so bald wie möglich.

Venafi Rolle für Ansible

Diese Lösung fügt Red Hat Ansible die Möglichkeit zur Zertifikatsregistrierung hinzu, indem sie nahtlos mit der Venafi Trust Protection Platform oder Venafi as a Service integriert wird. Dies gewährleistet die Einhaltung der Unternehmenssicherheitsrichtlinien und bietet Transparenz bei der Ausstellung von Zertifikaten im gesamten Unternehmen.

:red_car: Testen Sie heute unsere Integrationsbeispiele

Lassen Sie sich schrittweise zeigen, wie Sie Zertifikate zu Ihrer Infrastructure as Code-Automatisierung mit Ansible hinzufügen.

Produkte Verfügbare Integrationsbeispiele...
F5 BIG-IP Wie man eine sichere Anwendungsbereitstellung mit F5 BIG-IP und der Venafi Ansible Rolle konfiguriert
Citrix ADC Wie man eine sichere Anwendungsbereitstellung mit Citrix ADC und der Venafi Ansible Rolle konfiguriert

HINWEIS Wenn Sie kein Beispiel für ein Produkt sehen, das Sie verwenden, schauen Sie später wieder vorbei. Wir arbeiten hart daran, weitere Integrationsbeispiele hinzuzufügen.

Anforderungen

Überprüfen Sie die Venafi Voraussetzungen, installieren Sie dann Ansible und VCert-Python (v0.10.0 oder höher) mit pip:

pip install ansible vcert --upgrade

Verwendung mit Ansible Galaxy

Für weitere Informationen zu Ansible Galaxy besuchen Sie https://galaxy.ansible.com/docs/using/installing.html

  1. Installieren Sie die Venafi Rolle für Ansible aus Ansible Galaxy:

    ansible-galaxy install venafi.ansible_role_venafi
    
  2. Erstellen Sie die credentials.yml und fügen Sie die Verbindungsparameter hinzu:

    Trust Protection Platform:

    cat <<EOF >>credentials.yml
    access_token: 'p0WTt3sDPbzm2BDIkoJROQ=='
    url: 'https://tpp.venafi.example'
    zone: "DevOps\\Ansible"
    trust_bundle: "/path/to/bundle.pem"
    EOF
    

    Venafi as a Service:

    cat <<EOF >>credentials.yml
    token: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
    zone: 'Business App\\Enterprise CIT'
    EOF
    

    Die Venafi Rolle für Ansible unterstützt die folgenden Verbindungs- und Zugangseinstellungen:

    Variablenname Beschreibung
    access_token Zugangstoken der Trust Protection Platform für die "ansible-by-venafi" API-Anwendung
    password [VERALTET] Passwort für die Trust Protection Platform WebSDK, verwenden Sie nach Möglichkeit access_token
    test_mode Wenn "true", arbeitet die Rolle, ohne sich mit der Trust Protection Platform oder Venafi as a Service zu verbinden
    token API-Schlüssel für Venafi as a Service
    trust_bundle Textdatei mit Vertrauensanker-Zertifikaten im PEM-Format (Text), in der Regel erforderlich für die Trust Protection Platform
    url URL des Venafi-Dienstes (z. B. "https://tpp.venafi.example"), in der Regel nur anwendbar auf die Trust Protection Platform
    user [VERALTET] Benutzername für die Trust Protection Platform WebSDK, verwenden Sie nach Möglichkeit access_token
    zone Richtlinienordner für TPP oder Anwendungsname und Alias für die Ausstellungsvorlage für VaaS (z. B. "Business App\Enterprise CIT")
  3. Verwenden Sie ansible-vault, um die Datei credentials.yml mit einem Passwort zu verschlüsseln. Dies ist optional, wird jedoch dringend empfohlen. Solange Sie das Passwort wissen, können Sie die Datei jederzeit entschlüsseln, um Änderungen vorzunehmen, und sie dann erneut verschlüsseln. Besuchen Sie https://docs.ansible.com/ansible/latest/user_guide/vault.html für weitere Informationen.

    ansible-vault encrypt credentials.yml
    
  4. Schreiben Sie ein einfaches Playbook, z. B. sample.yml.

    - hosts: localhost
      roles:
        - role: venafi.ansible_role_venafi
          certificate_cert_dir: "/tmp/etc/ssl/{{ certificate_common_name }}"
    
  5. Führen Sie das Playbook aus.

    ansible-playbook sample.yml --ask-vault-pass
    

    Das Ausführen des Playbooks erzeugt ein Zertifikat und platziert es im Verzeichnis /tmp/etc/ssl/. Der Parameter --ask-vault-pass ist erforderlich, wenn Sie die Datei credentials.yml verschlüsselt haben. Zusätzliche Playbook-Variablen können hinzugefügt werden, um Eigenschaften des Zertifikats und des Schlüsselpaares, Dateispeicherorte und um Standardverhalten zu überschreiben.

    Variablenname Beschreibung
    credentials_file Name der Datei, die die Venafi-Zugangsdaten und Verbindungseinstellungen enthält
    Standard: credentials.yml
    certificate_common_name Allgemeiner Name für das angeforderte Zertifikat.
    Standard: "{{ ansible_fqdn }}"
    certificate_alt_name Kommagetrennte Liste von Subject Alternative Names, die für das Zertifikat angefordert werden sollen. Jeden Wert mit dem SAN-Typ voranstellen.
    Beispiel: "DNS:host.example.com,IP:10.20.30.40,email:[email protected]"
    certificate_privatekey_type Schlüsselalgorithmus, "RSA" oder "ECDSA"
    Standard: "RSA" (von VCert)
    certificate_privatekey_size Schlüssellänge in Bit für RSA-Schlüssel
    Standard: "2048" (von VCert)
    certificate_privatekey_curve Elliptische Kurve für ECDSA-Schlüssel
    Standard: "P251" (von VCert)
    certificate_privatekey_passphrase Passwort zur Verschlüsselung des privaten Schlüssels
    certificate_chain_option Gibt an, ob das Wurzel-CA-Zertifikat "last" (Standard) oder "first" in der Kette erscheint
    certificate_cert_dir Lokales übergeordnetes Verzeichnis, in dem die kryptografischen Assets gespeichert werden
    Standard: "/etc/ssl/{{ certificate_common_name }}"
    certificate_cert_path Lokales Verzeichnis, in dem Zertifikatsdateien gespeichert werden
    Standard: {{ certificate_cert_dir }}/{{ certificate_common_name }}.pem"
    certificate_chain_path Lokales Verzeichnis, in dem Zertifikatketten-Dateien gespeichert werden
    Standard: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.chain.pem"
    certificate_privatekey_path Lokales Verzeichnis, in dem private Schlüsseldaten gespeichert werden
    Standard: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.key"
    certificate_csr_path Lokales Verzeichnis, in dem Zertifikatanforderungsdateien gespeichert werden
    Standard: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.csr"
    certificate_remote_execution Gibt an, ob kryptografische Assets remote oder lokal generiert und dann auf den Remote-Host provisioniert werden
    Standard: false
    certificate_remote_cert_path Verzeichnis auf dem Remote-Host, in dem Zertifikatsdateien gespeichert werden
    Standard: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.pem"
    certificate_remote_chain_path Verzeichnis auf dem Remote-Host, in dem Zertifikatketten-Dateien gespeichert werden
    Standard: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.chain.pem"
    certificate_remote_privatekey_path Verzeichnis auf dem Remote-Host, in dem private Schlüsseldaten gespeichert werden
    Standard: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.key"
    certificate_copy_private_key_to_remote Gibt an, ob die private Schlüsseldaten auf den Remote-Host kopiert werden sollen
    Standard: true
    certificate_before_expired_hours Anzahl der Stunden vor dem Verfall des Zertifikats, bevor es erneuert werden kann
    Standard: 72
    certificate_renew Gibt an, ob das Zertifikat erneuert werden soll, wenn es sich im „before_expired_hours“-Fenster befindet, wenn das Playbook ausgeführt wird
    Standard: true
    certificate_force Gibt an, ob bei jedem Ausführen des Playbooks ein neues Zertifikat angefordert werden soll
    Standard: false

    Standardwerte sind in der Datei defaults/main.yml definiert.

Vorbereitung einer Docker-Demo-Umgebung für das Ausführen von Ansible

  1. (Optional) Bereiten Sie die Demoumgebung vor. Wenn Sie Ihr eigenes Inventar verwenden möchten, aktualisieren Sie die Datei tests/inventory.

    1. Um unser Test-/Demo-Playbook auszuführen, benötigen Sie die Docker-Provisionierungsrolle. Laden Sie sie in das Verzeichnis tests/roles/provision_docker herunter:

      git clone https://github.com/chrismeyersfsu/provision_docker.git tests/roles/provision_docker
      
    2. Bauen Sie dann die benötigten Docker-Images für das Demoplaybook:

      docker build ./tests --tag local-ansible-test
      

    Demo-Zertifikate werden im Verzeichnis /tmp/ansible/etc/ssl auf dem Ansible-Host gespeichert. Von dort aus werden sie in das Verzeichnis /etc/ssl/ der Remote-Hosts verteilt.

  2. Generieren Sie eine Zugangsdaten-Datei für entweder Trust Protection Platform oder Venafi as a Service, wie im obigen Abschnitt beschrieben.

  3. Führen Sie das Ansible-Playbook aus (entfernen Sie docker_demo=true, wenn Sie Ihr eigenes Inventar verwenden möchten). Der Inhalt von credentials.yml wird verwendet, um zu entscheiden, ob die Trust Protection Platform oder Venafi as a Service verwendet wird. Wenn Sie den Parameter token setzen, geht das Playbook davon aus, dass Sie Venafi as a Service verwenden. Wenn Sie die Parameter access_token oder password setzen, geht das Playbook davon aus, dass Sie die Trust Protection Platform verwenden.

    ansible-playbook -i tests/inventory \
      tests/venafi-playbook-example.yml \
      --extra-vars "credentials_file=credentials.yml docker_demo=true" \
      --ask-vault-pass
    

    Sie werden aufgefordert, das Passwort zum Entschlüsseln von credentials.yml einzugeben, wie zuvor. Die Quelldatei für die Zugangsdaten kann durch die credentials_file-Variable überschrieben werden, und dies kann über die Befehlszeile unter Verwendung des Parameters --extra-vars wie gezeigt angegeben werden.

Beispiel-Playbook

- hosts: servers
  roles:
    - role: "ansible-role-venafi"
      certificate_common_name: "{{ ansible_fqdn }}.venafi.example.com"
      certificate_cert_dir: "/tmp/ansible/etc/ssl/{{ certificate_common_name }}"
      certificate_cert_path: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.pem"
      certificate_chain_path: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.chain.pem"
      certificate_privatekey_path: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.key"
      certificate_csr_path: "{{ certificate_cert_dir }}/{{ certificate_common_name }}.csr"

      # Wo das venafi_certificate Modul ausgeführt werden soll. Wenn auf false gesetzt, wird das Zertifikat
      # auf dem Ansible-Master-Host erstellt und dann auf den Remote-Server kopiert.
      certificate_remote_execution: false
      # Remote-Standort, wo das Zertifikat platziert werden soll.
      certificate_remote_cert_dir: "/etc/ssl"
      certificate_remote_cert_path: "{{ certificate_remote_cert_dir }}/{{ certificate_common_name }}.pem"
      certificate_remote_chain_path: "{{ certificate_remote_cert_dir }}/{{ certificate_common_name }}.chain.pem"
      certificate_remote_privatekey_path: "{{ certificate_remote_cert_dir }}/{{ certificate_common_name }}.key"
      # Auf false setzen, wenn Sie den privaten Schlüssel nicht an den Remote-Standort kopieren möchten.
      certificate_copy_private_key_to_remote: true

Für Playbook-Beispiele schauen Sie sich die Datei venafi-playbook-example.yml an. Für Rollenbeispiele schauen Sie sich die Datei venafi-role-playbook-example.yml an.

Für weitere Informationen zur Verwendung von Rollen besuchen Sie https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html

Lizenz

Copyright © Venafi, Inc. Alle Rechte vorbehalten.

Diese Lösung ist lizenziert unter der Apache License, Version 2.0. Siehe LICENSE für den vollständigen Lizenztext.

Bitte richten Sie Fragen/Kommentare an opensource@venafi.com.

Über das Projekt

Streamline machine identity (certificate and key) acquisition using Venafi vcert.

Installieren
ansible-galaxy install venafi.ansible_role_venafi
Lizenz
apache-2.0
Downloads
4.1k
Besitzer
Venafi solutions find, protect and secure machine identities for our hyper-connected world.