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 所需的文件,无论是单次还是多次,独立或集群。
最终的文件夹结构包含密钥、证书和配置文件,将如下所示:
更新
- 现在角色会从本地文件系统复制二进制文件或安装程序,如果不存在,则尝试从 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