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 :

Apache NiFi Toolkit - structure du dossier et fichiers générés

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.

À propos du projet

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

Installer
ansible-galaxy install chilcano.apache-nifi-toolkit
Licence
Unknown
Téléchargements
142
Propriétaire
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.