在 Shell 脚本中调用 Ansible 变量

在 Shell 脚本中调用 Ansible 变量

我有如下库存文件,

[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了。确保语法正确:)

相关内容