自动化ansible ad-hoc命令的简单引用问题

时间:2015-10-06 10:11:31

标签: shell ansible ansible-ad-hoc

我尝试使shell脚本自动执行一些ansible ad-hoc命令。

e.g。

/usr/bin/ansible app -m shell -a 'echo $HOME'

我编写了一个简单的脚本来自动完成这类任务:

 #!/bin/bash
 set -x 
 ANS_BIN="/usr/bin/ansible"
 pattern="app"
 remote='echo $HOME'
 $ANS_BIN $pattern -m shell -a $remote

当我执行此操作时,无论我尝试什么,简单的引用总是被误解。

./ans2.sh
+ ANS_BIN=/usr/bin/ansible
+ pattern=app
+ remote='echo $HOME'
+ /usr/bin/ansible app -m shell -a echo '$HOME' Usage: ansible <host-pattern> [options]

我知道有很多关于简单/双重报价逃避的问题,但我只是没有得到它!不可能让这个工作。我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

尝试在Ansible调用中引用变量,如下所示:

$ANS_BIN $pattern -m shell -a "$remote"