chilcano.apache-nifi-toolkit

Rol de Ansible: apache-nifi-toolkit

Una Rol de Ansible que instala, configura el Apache NiFi Toolkit y ejecuta comandos para obtener certificados X.509 y archivos de configuración de NiFi. El Apache NiFi Toolkit es una herramienta que facilita la configuración segura de NiFi; en otras palabras, este kit genera la configuración de NiFi, los Certificados X.509, el Almacén de Claves de Java y el Almacén de Confianza de Java necesarios para una configuración segura de NiFi. Más información se puede encontrar aquí: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#tls-generation-toolkit

Esta Rol proporciona las siguientes características:

  • Instala el Apache NiFi Toolkit.
  • Realiza comandos del Apache NiFi Toolkit. El standalone es el único servicio de NiFi TLS Toolkit implementado.
  • Sincroniza (de remoto a local) y mantiene en un lugar único todos los archivos de configuración generados de NiFi, Certificados X.509 y archivos del Almacén de Claves de Java y Almacén de Confianza de Java.

Requisitos

  • Java.

Variables de la Rol

Las variables por defecto están en defaults/main.yml.

Dependencias

Esta Rol de Ansible no tiene dependencias, aunque el NiFi Toolkit requiere Java. Para instalar Java, utilizaré el rol (geerlingguy.java)[https://github.com/geerlingguy/ansible-role-java] pero con algunos cambios para instalar Oracle Java 8 en Debian. Tienes estos cambios disponibles en mi fork en (chilcano.java / branch oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian]. Solo clona esa rama.

Pero si vas a usar el Apache NiFi Toolkit en Ubuntu o CentOS, no necesitarás los cambios mencionados. Simplemente descarga el geerlingguy.java como se indica a continuación, o instala manualmente Java 7 u 8 en tu sistema:

$ sudo ansible-galaxy install geerlingguy.java

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

El archivo inventory contiene:

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

Este Playbook de Ansible instalará Oracle Java, instalará el Apache NiFi Toolkit y ejecutará este comando $ ./bin/tls-toolkit.sh standalone -n 'nf1.intix.info' --nifiDnSuffix ',OU=INTIX' -C 'CN=chilcano, OU=INTIX' -O -c 'nftk1_ca'. Todas las claves, certificados y configuraciones se crearán en $NIFI_TOOLKIT_HOME/nftk_repo y se sincronizarán con localhost bajo este directorio /Users/Chilcano/1github-repo/binaries. El directorio /Users/Chilcano/1github-repo/binaries necesita ser creado previamente. La sincronización nos permite obtener fácilmente y usar todos los archivos requeridos para configurar NiFi de manera segura, una o muchas veces, de forma independiente o en clúster.

La estructura final de la carpeta con claves, certificados y archivos de configuración será como se muestra a continuación:

Apache NiFi Toolkit - estructura de carpetas y archivos generados

Actualización

  • Ahora la Rol copia el binario/instalador desde el sistema de archivos local; si no existe, intenta descargarlo desde una URL. Finalmente, el binario descargado se copiará al sistema de archivos local para ser reutilizado.

Licencia

MIT / BSD

Información sobre el Autor

Esta rol fue creada en 2017 por Roger Carhuatocto, autor del Blog HolisticSecurity.io.

Acerca del proyecto

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

Instalar
ansible-galaxy install chilcano.apache-nifi-toolkit
Licencia
Unknown
Descargas
142
Propietario
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.