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:
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.
An Ansible Role that installs Apache NiFi Toolkit and and runs commands to get x.509, Java KeyStore, TrustStore required to configure NiFi securely.
ansible-galaxy install chilcano.apache-nifi-toolkit