apache-nifi-toolkit

Ansible Роль: apache-nifi-toolkit

Ansible роль, которая устанавливает и настраивает Apache NiFi Toolkit и выполняет команды для получения файлов конфигурации X.509 и NiFi. Apache NiFi Toolkit - это инструмент, который облегчает безопасную настройку NiFi, то есть этот набор инструментов генерирует конфигурацию NiFi и сертификаты X.509, хранилище ключей Java и хранилище доверия Java, необходимые для безопасной настройки NiFi. Дополнительную информацию можно найти здесь: https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#tls-generation-toolkit

Эта роль предоставляет следующие функции:

  • Устанавливает Apache NiFi Toolkit.
  • Выполняет команды Apache NiFi Toolkit. standalone - это уникальная служба NiFi TLS Toolkit.
  • Синхронизирует (из удаленного на локальный хост) и хранит в одном месте все сгенерированные конфигурации NiFi, сертификаты X.509, а также файлы хранилища ключей и хранилища доверия Java.

Требования

  • Java.

Переменные роли

Стандартные переменные находятся в defaults/main.yml.

Зависимости

Эта Ansible роль не имеет зависимостей, хотя NiFi Toolkit требует Java. Чтобы установить Java, я использую роль (geerlingguy.java)[https://github.com/geerlingguy/ansible-role-java], но с некоторыми изменениями для установки Oracle Java 8 на Debian. Вы можете найти эти изменения на моем форке (chilcano.java / branch oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian]. Просто клонируйте эту ветку.

Но если вы собираетесь использовать Apache NiFi Toolkit в Ubuntu или CentOS, вам не понадобятся вышеуказанные изменения. Просто скачайте geerlingguy.java, как указано ниже, или установите Java 7 или 8 на своем компьютере:

$ sudo ansible-galaxy install geerlingguy.java

Пример плейбука

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

Файл inventory содержит:

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

Этот Ansible плейбук установит Oracle Java, установит Apache NiFi Toolkit и выполнит следующую команду $ ./bin/tls-toolkit.sh standalone -n 'nf1.intix.info' --nifiDnSuffix ',OU=INTIX' -C 'CN=chilcano, OU=INTIX' -O -c 'nftk1_ca'. Все ключи, сертификаты и конфигурации будут созданы в $NIFI_TOOLKIT_HOME/nftk_repo и синхронизированы с localhost в директории /Users/Chilcano/1github-repo/binaries. Директория /Users/Chilcano/1github-repo/binaries должна быть создана заранее. Синхронизация позволяет легко получать и использовать все файлы, необходимые для безопасной настройки NiFi, многократно, в одиночку или в кластере.

Итоговая структура папок с ключами, сертификатами и файлами конфигурации будет выглядеть следующим образом:

Apache NiFi Toolkit - структура папки и сгенерированные файлы

Обновлено

  • Теперь роль копирует бинарные файлы/установщики из локальной файловой системы, если они не существуют, то пытается загрузить их по URL. Наконец, загруженный бинарный файл будет скопирован в локальную файловую систему для дальнейшего использования.

Лицензия

MIT / BSD

Информация об авторе

Эта роль была создана в 2017 году Роджером Каруатоcto, автором блога 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/ansible-role-apache-nifi-toolkit
Лицензия
Unknown
Загрузки
125
Владелец
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.