能否通过参数直接向ansible-playbook传递Playbook内容?
直接通过命令行传递Ansible Playbook内容的实现方法
当然可以,不需要专门的-XYZ这类自定义参数,Ansible原生支持直接通过标准输入传递完整的Playbook内容,下面是两种常用的实现方式:
方法1:通过管道传递内容
利用echo命令将Playbook内容通过管道传给ansible-playbook,并使用-作为文件名参数(该参数表示从标准输入读取Playbook内容):
echo '--- - hosts: all tasks: - name: 测试任务 debug: msg: "来自内联Playbook的消息" ' | ansible-playbook -i myinventory.ini -
方法2:使用Here-String(适用于Bash/Zsh环境)
通过Shell的here-string语法,直接在命令行中嵌入完整的Playbook内容,同样用-指定读取标准输入:
ansible-playbook -i myinventory.ini - << 'EOF' --- - hosts: all tasks: - name: 测试任务 debug: msg: "来自内联Playbook的消息" EOF
提示:如果你的Playbook不需要引用Shell环境变量,可以给
EOF加上单引号,避免Shell对Playbook内的变量进行解析。
另外需要纠正你示例中的拼写错误:ansible-palybook应为ansible-playbook。
内容的提问来源于stack exchange,提问作者chris01
相关产品推荐
相关产品推荐

