我尝试使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]
我知道有很多关于简单/双重报价逃避的问题,但我只是没有得到它!不可能让这个工作。我该怎么办呢?
答案 0 :(得分:1)
尝试在Ansible调用中引用变量,如下所示:
$ANS_BIN $pattern -m shell -a "$remote"