我是Ansible的新手。我有一个bash脚本,它有三个要传递的参数。我必须在Ansible的远程服务器上运行这个bash脚本。
基本上,我想在执行Ansible命令时将主机名,持续时间和注释字段声明为参数。我不想编辑文件,因为我是从Slack频道进行编辑的。
- hosts: nagiosserver
tasks:
- name: Executing a script
command: sh /home/aravind/downtime.sh {hostname} {duration} {comments}
答案 0 :(得分:1)
如果您通过ansible-playbook myplay.yml
执行ansible,则可以通过-e varname=varvalue
传递其他变量。懒惰的修复方法是使用
ansible-playbook myplay.yml -e my_hostname=foo -e my_duration=bar -e my_comments=foobar
但是您应该考虑主机名已经在您的库存或收集的事实中定义。
所以你可以使用
更新你的剧本以使用这些额外的变量- hosts: nagiosserver
tasks:
- name: Executing a script
- command: "sh /home/aravind/downtime.sh {{my_hostname}} {{my_duration}} {{my_comments}}"