chilcano.apache-nifi-toolkit
Rôle Ansible : apache-nifi-toolkit
Un rôle Ansible qui installe, configure Apache NiFi Toolkit et exécute des commandes pour obtenir des fichiers de configuration NiFi et des certificats X.509. L'Apache NiFi Toolkit est un outil pour faciliter la configuration sécurisée de NiFi, c'est-à-dire que ce toolkit génère la configuration de NiFi ainsi que les certificats X.509, le Java Key Store et le Java Trust Store nécessaires pour une configuration sécurisée de NiFi. Plus d'informations peuvent être trouvées ici : https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#tls-generation-toolkit
Ce rôle offre les fonctionnalités suivantes :
- Installe l'Apache NiFi Toolkit.
- Exécute des commandes de l'Apache NiFi Toolkit. Le
standalone
est le seul service NiFi TLS Toolkit implémenté. - Synchronise (du serveur distant vers l'hôte local) et garde au même endroit tous les fichiers de configuration générés de NiFi, les certificats X.509 ainsi que les fichiers Java KeyStore et Java Trust Store.
Prérequis
- Java.
Variables du rôle
Les variables par défaut se trouvent dans defaults/main.yml
.
Dépendances
Ce rôle Ansible n'a pas de dépendances, bien que l'Apache NiFi Toolkit nécessite Java. Pour installer Java, j'utiliserai le rôle (geerlingguy.java)[https://github.com/geerlingguy/ansible-role-java] mais avec quelques modifications pour installer Oracle Java 8
sur Debian. Vous pouvez trouver ces modifications dans ma branche fork à (chilcano.java / branche oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian]. Il suffit de cloner cette branche.
Cependant, si vous envisagez d'utiliser l'Apache NiFi Toolkit sur Ubuntu ou CentOS, vous n'aurez pas besoin des modifications ci-dessus. Il suffit de télécharger le geerlingguy.java
comme ci-dessous, ou d'installer manuellement Java 7 ou 8 sur votre machine :
$ sudo ansible-galaxy install geerlingguy.java
Exemple 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"
Le fichier inventory
contient :
[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"
Ce Playbook Ansible installera Oracle Java, installera l'Apache NiFi Toolkit et exécutera cette commande $ ./bin/tls-toolkit.sh standalone -n 'nf1.intix.info' --nifiDnSuffix ',OU=INTIX' -C 'CN=chilcano, OU=INTIX' -O -c 'nftk1_ca'
. Toutes les clés, certificats et configurations seront créés dans $NIFI_TOOLKIT_HOME/nftk_repo
et seront synchronisés vers localhost
sous ce répertoire /Users/Chilcano/1github-repo/binaries
.
Le répertoire /Users/Chilcano/1github-repo/binaries
doit être créé au préalable. La synchronisation permet d'obtenir facilement et d'utiliser tous les fichiers nécessaires pour configurer NiFi de manière sécurisée, une ou plusieurs fois, en mode autonome ou en cluster.
La structure finale des dossiers avec les clés, certificats et fichiers de configuration sera comme suit :
Mise à jour
- Maintenant, le rôle copie le binaire/l'installeur depuis le système de fichiers local, s'il n'existe pas, il essaie alors de le télécharger depuis une URL. Enfin, le binaire téléchargé sera copié sur le système de fichiers local pour être réutilisé.
Licence
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2017 par Roger Carhuatocto, auteur du 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