我有如下库存文件,
[routers]
iLAB-SR-12-R2 ansible_host=192.168.82.211
iLAB-SR-12-R3 ansible_host=192.168.82.212
iLAB-SR-12-R4 ansible_host=192.168.82.213
我有 shell 脚本用于将多个文件与主文件进行比较,
#!/bin/bash
config_location="/etc/ansible/test"
master="/etc/ansible/test-master"
cd $config_location
file=`ls -l | grep "^-" | awk '{print $NF}'`
echo "Hostname IpAddress Comments" > /etc/ansible/output.csv
for i in $file
do
if diff -c $i $master > "/etc/ansible/test-difference/diff_$i" ;then
echo "$i NoChange"
else
echo "$i SomeChange"
fi
done >> /etc/ansible/output.csv
问题是,如果它是 ansible,我会使用 {{remote_host}} 来获取我的 output.csv 文件的 IP 地址。在脚本中我如何调用变量 {{ansible_host}} 来获取 ipaddress 或者有什么办法。
下面是我的示例 output.csv 文件,但 ip 地址现在为空,
Hostname Ipaddress Comments
Test1 Somechanges
Test2 Nochanges
任何人都可以帮助我如何从库存文件中获取 IP 地址。提前致谢。
答案1
你能修改你的脚本吗?
如果可以的话,在脚本开始时获取您需要的两个参数,例如:
remote_host="$1"
ansible_host="$2"
然后在你的剧本中,你可以这样调用你的脚本:
myscript {{remote_host}} {{ansible_host}}
好久没玩ansible了。确保语法正确:)