chilcano.apache-nifi-toolkit

Ansible Rolle: apache-nifi-toolkit

Eine Ansible Rolle, die das Apache NiFi Toolkit installiert, konfiguriert und Befehle ausführt, um X.509- und NiFi-Konfigurationsdateien zu erhalten. Das Apache NiFi Toolkit ist ein Werkzeug, das die sichere Einrichtung von NiFi erleichtert, mit anderen Worten, dieses Toolkit generiert die NiFi-Konfiguration und die X.509-Zertifikate, Java Key Store und Java Trust Store, die für die sichere Konfiguration von NiFi erforderlich sind. Weitere Informationen finden Sie hier: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#tls-generation-toolkit

Diese Rolle bietet folgende Funktionen:

  • Installiert das Apache NiFi Toolkit.
  • Führt Befehle des Apache NiFi Toolkits aus. Der standalone ist der einzigartige NiFi TLS Toolkit Dienst, der implementiert ist.
  • Synchronisiert (vom Remote-Host zum lokalen Host) und hält an einem einzigartigen Ort alle generierten NiFi-Konfigurationen, X.509-Zertifikate sowie Java KeyStore- und Java Trust Store-Dateien.

Anforderungen

  • Java.

Rollenvariablen

Die Standardvariablen befinden sich in defaults/main.yml.

Abhängigkeiten

Diese Ansible Rolle hat keine Abhängigkeiten, obwohl das NiFi Toolkit Java benötigt.
Um Java zu installieren, werde ich die (geerlingguy.java)[https://github.com/geerlingguy/ansible-role-java] Rolle verwenden, aber mit ein paar Änderungen, um Oracle Java 8 in Debian zu installieren. Diese Änderungen sind in meinem Fork unter (chilcano.java / branch oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian] verfügbar. Klonen Sie einfach diesen Branch.

Wenn Sie das Apache NiFi Toolkit jedoch unter Ubuntu oder CentOS verwenden möchten, benötigen Sie die oben genannten Änderungen nicht. Laden Sie einfach das geerlingguy.java wie folgt herunter oder installieren Sie Java 7 oder 8 manuell auf Ihrem System:

$ sudo ansible-galaxy install geerlingguy.java

Beispiel-Playbook

---
- hosts: nftk1
  become: yes
  vars_files:
    - vars.yml
  roles:
    - role: ../../playbooks/roles/ansible-role-java
      java_packages:
        - oracle-java8-installer
        - ca-certificates
        - oracle-java8-set-default
      java_cleanup: false
      java_home: "/usr/lib/jvm/java-8-oracle"

    - role: chilcano.apache-nifi-toolkit
      nftk:
        version: "1.2.0"
        packaging_bin: "tar.gz"
        packaging_src: "zip"
        action:
          clean:
            installation: false
            repository: false
            dependencies: false
          install: true
          run_cmd: true
          sync: true
        download:
          http_uri: "http://mirror.ox.ac.uk/sites/rsync.apache.org"
      nftk_run:
        cmd: "standalone -n 'nf1.intix.info' --nifiDnSuffix ',OU=INTIX' -C 'CN=chilcano, OU=INTIX' -O -c 'nftk1_ca'"
        clientpasswd: "demo00a"
        keypasswd: "demo00b"
        truststorepasswd: "demo00c"
        keystorepasswd: "demo00d"
      nftk_cfg.dir_repo: "nftk_repo"
      nftk_sync_dir_local: "/Users/Chilcano/1github-repo/binaries"

Die inventory-Datei enthält:

[nifitks]
nftk1

nftk1 ansible_host=192.168.77.4

[nifitks:vars]
ansible_user=vagrant
ansible_ssh_private_key_file="/Users/Chilcano/.vagrant.d/insecure_private_key"

Dieses Ansible-Playbook installiert Oracle Java, installiert das Apache NiFi Toolkit und führt diesen Befehl aus: $ ./bin/tls-toolkit.sh standalone -n 'nf1.intix.info' --nifiDnSuffix ',OU=INTIX' -C 'CN=chilcano, OU=INTIX' -O -c 'nftk1_ca'. Alle Schlüssel, Zertifikate und Konfigurationen werden in $NIFI_TOOLKIT_HOME/nftk_repo erstellt und unter diesem Verzeichnis /Users/Chilcano/1github-repo/binaries mit localhost synchronisiert. Das Verzeichnis /Users/Chilcano/1github-repo/binaries muss vorher erstellt werden. Die Synchronisation ermöglicht es uns, alle erforderlichen Dateien für die sichere Konfiguration von NiFi einfach zu erhalten und mehrere Male zu verwenden, im Standalone-Modus oder im Cluster.

Die endgültige Ordnerstruktur mit Schlüsseln, Zertifikaten und Konfigurationsdateien wird wie folgt aussehen:

Apache NiFi Toolkit - Ordnerstruktur und generierte Dateien

Aktualisiert

  • Jetzt kopiert die Rolle die Binärdatei/Installer vom lokalen Dateisystem, wenn sie nicht vorhanden ist, versucht sie dann, sie von einer URL herunterzuladen. Schließlich wird die heruntergeladene Binärdatei ins lokale Dateisystem kopiert, um wiederverwendet zu werden.

Lizenz

MIT / BSD

Autoreninformation

Diese Rolle wurde 2017 von Roger Carhuatocto erstellt, Autor des HolisticSecurity.io Blog.

Über das Projekt

An Ansible Role that installs Apache NiFi Toolkit and and runs commands to get x.509, Java KeyStore, TrustStore required to configure NiFi securely.

Installieren
ansible-galaxy install chilcano.apache-nifi-toolkit
GitHub Repository
Lizenz
Unknown
Downloads
142
Besitzer
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.