我想在临时Ansible命令中运行一个sub shell命令。
这是我想做的:
sudo ansible myservers -m shell -a "touch /var/tmp/$(uname -n)"
Run Code Online (Sandbox Code Playgroud)
它创建远程文件,但是使用本地主机的名称,它不会在远程服务器上执行uname命令。
我找到了解决方案:
sudo ansible myservers -m shell -a '/bin/bash -c "toto=`uname -n` ; touch /var/tmp/\$toto.json;"'
Run Code Online (Sandbox Code Playgroud)
似乎我必须启动一个Shell才能执行子Shell命令,但是它可以工作。