chilcano.apache-nifi
Ansible-Rolle: apache-nifi
Eine Ansible-Rolle, die Apache NiFi installiert, konfiguriert und ausführt. Diese Rolle bietet folgende Funktionen:
- Installiert Apache NiFi.
- Konfiguriert Apache NiFi in 3 Modi:
http
: Standardkonfiguration von NiFi, keine Authentifizierung und läuft über HTTP.https
: Konfiguriert und führt NiFi über SSL/TLS mit Authentifizierung basierend auf dem Client-Zertifikat aus.tls_toolkit
: Holt das Schlüssel-Paar, digitale Zertifikate, den Java-Schlüsselbund und Konfigurationsdateien, die von Apache NiFi erstellt wurden, um NiFi sicher zu konfigurieren und auszuführen.
- Führt Apache NiFi als
systemd
-Dienst aus.
Anforderungen
- Java.
Rollenvariablen
Die Standardvariablen befinden sich in defaults/main.yml
.
Abhängigkeiten
Diese Ansible-Rolle hat keine Abhängigkeiten, jedoch benötigt Apache NiFi Java.
Um Java zu installieren, werde ich die Rolle (geerlingguy.java)[https://github.com/geerlingguy/ansible-role-java] verwenden, aber mit einigen Änderungen zur Installation von Oracle Java 8
unter Debian. Diese Änderungen sind in meinem Fork unter (chilcano.java / branch oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian] verfügbar. Klonen Sie einfach diesen Branch.
Wenn Sie jedoch Apache NiFi unter Ubuntu oder CentOS verwenden, sind die oben genannten Änderungen nicht erforderlich. Laden Sie einfach das geerlingguy.java
wie unten beschrieben herunter oder installieren Sie Java 7 oder 8 manuell auf Ihrem Gerät:
$ sudo ansible-galaxy install geerlingguy.java
Beispiel-Playbook
- hosts: nf1
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
nifi:
version: "1.2.0"
packaging_bin: "tar.gz"
packaging_src: "zip"
action:
clean:
installer: false
installation: false
dependencies: false
install: true
run: true
deployment:
mode: "http"
tls_toolkit:
shared_dir_local: "/Users/Chilcano/1github-repo/binaries"
hostname: ""
dir_repo: ""
download:
http_uri: "http://mirror.ox.ac.uk/sites/rsync.apache.org"
nifi_conf_authorizers:
initial_admin_identity: ""
nf_hostname_pattern: ""
nf_domain: ""
nf_dn_suffix: ""
nifi_properties_j2:
nifi.remote.input.host: ""
nifi.remote.input.secure: false
nifi.remote.input.socket.port:
nifi.web.http.host: ""
nifi.web.http.port: 8080
nifi.web.https.host: ""
nifi.web.https.port:
nifi.security.keystore: ""
nifi.security.keystoreType: ""
nifi.security.keystorePasswd: ""
nifi.security.keyPasswd: ""
nifi.security.truststore: ""
nifi.security.truststoreType: ""
nifi.security.truststorePasswd: ""
nifi.security.user.authorizer: ""
nifi.security.user.login.identity.provider: ""
nifi.cluster.protocol.is.secure: false
nifi.cluster.node.address: ""
nifi.cluster.node.protocol.port:
nifi_sync_dir_local: "/Users/Chilcano/1github-repo/binaries"
- hosts: nf2
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
nifi:
action:
clean:
installer: false
installation: false
dependencies: false
install: true
run: true
deployment:
mode: "https"
tls_toolkit:
shared_dir_local: "/Users/Chilcano/1github-repo/binaries"
hostname: "nftk1"
dir_repo: "nifi-toolkit_repo"
download:
http_uri: "http://mirror.ox.ac.uk/sites/rsync.apache.org"
nifi_conf_authorizers:
initial_admin_identity: "{{ _nftk_client_cert_dn }}"
nf_hostname_pattern: "{{ _nftk_hostname }}"
nf_domain: "{{ _nftk_domain }}"
nf_dn_suffix: "{{ _nftk_dn_suffix }}"
nifi_properties_j2:
nifi.remote.input.host: ""
nifi.remote.input.secure: true
nifi.remote.input.socket.port: 10443
nifi.web.http.host: ""
nifi.web.http.port:
nifi.web.https.host: ""
nifi.web.https.port: 9443
nifi.security.keystore: ./conf/keystore.jks
nifi.security.keystoreType: jks
nifi.security.keystorePasswd: "{{ _nftk_run_keystorepasswd }}"
nifi.security.keyPasswd: "{{ _nftk_run_keypasswd }}"
nifi.security.truststore: ./conf/truststore.jks
nifi.security.truststoreType: jks
nifi.security.truststorePasswd: "{{ _nftk_run_truststorepasswd }}"
nifi.security.user.authorizer: "file-provider"
nifi.security.user.login.identity.provider: ""
nifi.cluster.protocol.is.secure: true
nifi.cluster.node.address: ""
nifi.cluster.node.protocol.port: 11443
nifi_sync_dir_local: "/Users/Chilcano/1github-repo/binaries"
- hosts: nf3
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
nifi:
action:
clean:
installer: false
installation: false
dependencies: false
install: true
run: true
deployment:
mode: "tls_toolkit"
tls_toolkit:
shared_dir_local: "/Users/Chilcano/1github-repo/binaries"
hostname: "nftk1"
dir_repo: "nifi-toolkit_repo"
download:
http_uri: "http://mirror.ox.ac.uk/sites/rsync.apache.org"
nifi_conf_authorizers:
initial_admin_identity: "{{ _nftk_client_cert_dn }}"
nf_hostname_pattern: "{{ _nftk_hostname }}"
nf_domain: "{{ _nftk_domain }}"
nf_dn_suffix: "{{ _nftk_dn_suffix }}"
nifi_properties_j2:
nifi.remote.input.host: ""
nifi.remote.input.secure: true
nifi.remote.input.socket.port: 10443
nifi.web.http.host: ""
nifi.web.http.port:
nifi.web.https.host: ""
nifi.web.https.port: 9443
nifi.security.keystore: ./conf/keystore.jks
nifi.security.keystoreType: jks
nifi.security.keystorePasswd: "{{ _nftk_run_keystorepasswd }}"
nifi.security.keyPasswd: "{{ _nftk_run_keypasswd }}"
nifi.security.truststore: ./conf/truststore.jks
nifi.security.truststoreType: jks
nifi.security.truststorePasswd: "{{ _nftk_run_truststorepasswd }}"
nifi.security.user.authorizer: "file-provider"
nifi.security.user.login.identity.provider: ""
nifi.cluster.protocol.is.secure: true
nifi.cluster.node.address: ""
nifi.cluster.node.protocol.port: 11443
nifi_sync_dir_local: "/Users/Chilcano/1github-repo/binaries"
Die Datei vars.yml
ist:
_nftk_domain: "intix.info"
_nftk_hostname: "nf[1-3]"
_nftk_dn_suffix: "OU=INTIX"
_nftk_client_cert_dn: "CN=chilcano, {{ _nftk_dn_suffix }}"
_nftk_run_clientpasswd: demo00a
_nftk_run_keypasswd: demo00b
_nftk_run_truststorepasswd: demo00c
_nftk_run_keystorepasswd: demo00d
Die Datei inventory
ist:
[nifis]
nf1
nf2
nf3
nf1 ansible_host=192.168.77.5
nf2 ansible_host=192.168.77.6
nf3 ansible_host=192.168.77.7
[nifis:vars]
ansible_user=vagrant
ansible_ssh_private_key_file="/Users/Chilcano/.vagrant.d/insecure_private_key"
Aktualisiert
- Die Rolle kopiert jetzt den Binär-/Installationsdatei vom lokalen Dateisystem. Wenn sie nicht existiert, wird versucht, sie von einer URL herunterzuladen. Schließlich wird die heruntergeladene Binärdatei auf das lokale Dateisystem kopiert, um sie wiederzuverwenden.
- Die Datei
inventory
muss aktualisiert werden, indemansible_ssh_private_key_file
hinzugefügt wird, um dassynchronize
-Ansible-Modul (zum Synchronisieren größerer Dateien) anstelle desfetch
-Ansible-Moduls zu verwenden. - Die Variable
nifi_sync_dir_local
wurde zu dieser Ansible-Rolle hinzugefügt. Es ist das lokale Verzeichnis, aus dem die Ansible-Rolle die Binär-/Installationsdatei kopiert, um sie auf dem Remote-Host zu verwenden.
Lizenz
MIT / BSD
Autorinformationen
Diese Rolle wurde 2017 von Roger Carhuatocto erstellt, dem Autor des HolisticSecurity.io Blogs.
An Ansible Role that installs and runs Apache NiFi.
ansible-galaxy install chilcano.apache-nifi