Ansible 临时括号扩展

Ansible 临时括号扩展

是否可以在临时命令中使用括号扩展?我正在尝试这样做:

ansible web3 -m shell -a "sudo gzip /var/opt/tomcat/logs/appname.log.2015-05-2{4..7}" -K

但它被解释为字符串。在这种情况下我可能需要使用 xargs 吗?

答案1

主机是否是web3最新的 Debian/Ubuntu 服务器,/bin/sh短跑? 它不支持括号扩展。您可能需要指定executable选项来shell 模块

$ ansible -i localhost, all -m shell -a 'ls /var/log/syslog.{2..4}.gz'
localhost | FAILED | rc=2 >>
ls: cannot access /var/log/syslog.{2..4}.gz: No such file or directory

$ ansible -i localhost, all -m shell -a 'ls /var/log/syslog.{2..4}.gz executable=/bin/bash'
localhost | success | rc=0 >>
/var/log/syslog.2.gz
/var/log/syslog.3.gz
/var/log/syslog.4.gz

相关内容