ansible工具是否没有shell脚本灵活?

例如 我要对一个配置文件修改后发送给三台主机

第一台主机的配置文件更改处为第一台主机的ip的某一段

第二台主机的配置文件在第一台主机的配置文件之上再加上自身ip的某一段

第三台主机依次类推

在shell脚本中只需把三个ip写到同一个文件中,然后在while循环中读取ip,再根据awk命令截取ip设置变量后,根据sed命令利用变量的值修改配置文件,再分别拷到对应主机上即可。

而ansible工具好像要使用3个模板和许多的变量才能实现,每次修改ip后都需要手动修改定义的变量的值(shell脚本中只需改一个ip即可,因为很多变量的值都用ip加上awk命令实现了)

总的给我的感觉就是ansible的变量写的有点死,写完后是什么就是什么。而shell中变量可根据其他变量的值使用awk等命令进行操作,这样只需改变一个变量的值其他变量的值会自动改变。

ansible本身去实现xx功能是相当受限的,受限变量的操纵就是一个问题。从稍微复杂一点的数据结构中提取数据在组成新的数据结构,这种基本只能用脚本语言写module去实现,ansible本身只提供并发和管理与远程主机的连接。个人觉得ansible做得太多的(或者太少了)