我正在尝试自动在许多远程客户端上安装Icinga2。PKI令牌将在Icinga服务器上生成,每个客户端的PKI令牌都是不同的-然后它应该被发送到每个客户端。作为客户端安装的一部分,icinga2节点向导将运行,我希望通过管道将一系列输入传递给提示,如下所示。你能检查一下我是否正确地使用了这里的文档吗?
#!/bin/bash
while read f; do
ssh-copy-id myusername"$f"
ssh myusername@"$f" '
yum install -y epel-release
wget --no-check-certificate https://packages.icinga.org/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
yum install icinga-rpm-release-7-1.el7.centos.noarch.rpm
yum install -y icinga2 nagios-plugins-all
chown -R icinga:icinga /etc/icinga2 /var/lib/icinga2 /var/log/icinga2' </dev/null
ssh myusername@master.icinga.test.com icinga2 pki ticket --cn "$f" |
ssh myusername@"$f" 'cat >/tmp/pkicode'
PKI= echo $/tmp/pkicode
icinga2 node wizard << EOF
Y
Enter
master.icinga.test.com
Y
10.20.20.1
N
Y
$PKI
Enter
Enter
Y
Y
Enter
Enter
N
N
EOF
scp ./zones.conf myusername@"$f":/etc/icinga2/zones.conf
done < linux-list.txt
谢谢
发布于 2018-07-28 05:40:11
您在代码中有一些错误。
#!/bin/bash
while read f; do
ssh-copy-id myusername"$f"
ssh myusername@"$f" '
:
' </dev/null
ssh myusername@master.icinga.test.com icinga2 pki ticket --cn "$f" </dev/null |
ssh myusername@"$f" '
PKI=$(cat)
icinga2 node wizard <<________EOF
Y
master.icinga.test.com
Y
10.20.20.1
N
Y
$PKI
Y
Y
N
N
________EOF
'
scp ./zones.conf myusername@"$f":/etc/icinga2/zones.conf
done < linux-list.txt
您会特别注意到,最后一个ssh
需要在单引号中包含所有应该运行的代码。它在其标准输入上接收票据,并使用$(cat)
直接在变量中捕获它。此外,here文档中的空行生成了一个etrer击键,在icinga2
的输入中没有其他内容。
正如您在前面的问题中所建议的,您可能应该在脚本中使用icinga2 node setup
而不是node wizard
。
https://stackoverflow.com/questions/51564830
复制相似问题