chilcano.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] 角色,但会进行一些更改以在 Debian 中安装 Oracle Java 8。你可以从我在 (chilcano.java / branch oracle-java-debian)[https://github.com/chilcano/ansible-role-java/tree/oracle-java-debian] 的分支上获取这些更改。只需克隆该分支。

如果你打算在 Ubuntu 或 CentOS 中使用 Apache NiFi Toolkit,则不需要上述更改。只需按照以下说明下载 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 Playbook 将安装 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 下。此目录需要事先创建。同步使我们能够轻松获取和使用所有配置 NiFi 所需的文件,无论是单次还是多次,独立或集群。

最终的文件夹结构包含密钥、证书和配置文件,将如下所示:

Apache NiFi Toolkit - 文件夹结构和生成的文件

更新

  • 现在角色会从本地文件系统复制二进制文件或安装程序,如果不存在,则尝试从 URL 下载。最后下载的二进制文件将被复制到本地文件系统以便重用。

许可证

MIT / BSD

作者信息

该角色由 Roger Carhuatocto 于2017年创建,作者为 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
许可证
Unknown
下载
142
拥有者
Crypto, PKI, DevSecOps, Cloud & Cyber Security, SOA, API & Service Mesh.