chilcano.apache-nifi-toolkit

Ansible Rola: apache-nifi-toolkit

Rola Ansible, która instaluje i konfiguruje Apache NiFi Toolkit oraz uruchamia polecenia do uzyskania plików konfiguracyjnych X.509 i NiFi. Apache NiFi Toolkit to narzędzie, które ułatwia bezpieczne skonfigurowanie NiFi, co oznacza, że to narzędzie generuje konfigurację NiFi oraz Certyfikaty X.509, Java Key Store i Java Trust Store potrzebne do bezpiecznej konfiguracji NiFi. Więcej informacji można znaleźć tutaj: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#tls-generation-toolkit

Ta Rola oferuje następujące funkcje:

  • Instaluje Apache NiFi Toolkit.
  • Wykonuje polecenia Apache NiFi Toolkit. standalone to jedyna usługa NiFi TLS Toolkit, która została zaimplementowana.
  • Synchronizuje (zdalny host do lokalnego) i przechowuje w jednym miejscu wszystkie wygenerowane pliki konfiguracyjne NiFi, Certyfikaty X.509 oraz pliki Java KeyStore i Java Trust Store.

Wymagania

  • Java.

Zmienne Roli

Domyślne zmienne znajdują się w defaults/main.yml.

Zależności

Ta Rola Ansible nie ma zależności, chociaż NiFi Toolkit wymaga Javy. Aby zainstalować Javę, użyję roli (geerlingguy.java)[https://github.com/geerlingguy/ansible-role-java], ale z kilkoma zmianami, aby zainstalować Oracle Java 8 w Debianie. Te zmiany są dostępne w moim forku na (chilcano.java / branch oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian]. Wystarczy sklonować tę gałąź.

Jednak jeśli zamierzasz używać Apache NiFi Toolkit w Ubuntu lub CentOS, nie będziesz potrzebować powyższych zmian. Po prostu pobierz geerlingguy.java jak poniżej lub zainstaluj ręcznie Javę w wersji 7 lub 8 na swoim komputerze:

$ sudo ansible-galaxy install geerlingguy.java

Przykład Playbooka

---
- 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"

Plik inventory zawiera:

[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"

Ten Playbook Ansible zainstaluje Oracle Java, zainstaluje Apache NiFi Toolkit i wykona to polecenie: $ ./bin/tls-toolkit.sh standalone -n 'nf1.intix.info' --nifiDnSuffix ',OU=INTIX' -C 'CN=chilcano, OU=INTIX' -O -c 'nftk1_ca'. Wszystkie klucze, certyfikaty i konfiguracje zostaną utworzone w $NIFI_TOOLKIT_HOME/nftk_repo i zostaną zsynchronizowane z localhost pod tym katalogiem /Users/Chilcano/1github-repo/binaries. Katalog /Users/Chilcano/1github-repo/binaries należy utworzyć wcześniej. Synchronizacja pozwala nam łatwo uzyskać i używać wszystkich plików potrzebnych do bezpiecznej konfiguracji NiFi, wielokrotnie, w trybie samodzielnym lub klastrowym.

Finalna struktura folderów z kluczami, certyfikatami i plikami konfiguracyjnymi będzie wyglądać jak poniżej:

Apache NiFi Toolkit - struktura folderów i wygenerowane pliki

Zaktualizowane

  • Teraz Rola kopiuje pliki binarne/instalatora z lokalnego systemu plików, jeśli nie istnieją, to próbuje pobrać z URL. Ostatecznie pobrany program zostanie skopiowany do lokalnego systemu plików, aby można go było ponownie użyć.

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2017 roku przez Roger Carhuatocto, autora HolisticSecurity.io Blog.

O projekcie

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

Zainstaluj
ansible-galaxy install chilcano.apache-nifi-toolkit
Licencja
Unknown
Pobrania
142
Właściciel
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.