2017-07-31 64 views
0

我是Ansible的新手。我有一个bash脚本,它有三个参数需要传递。我必须在Ansible的远程服务器上运行这个bash脚本。在Ansible中执行带有参数的bash脚本

基本上,我想在执行Ansible命令时声明主机名,持续时间和注释字段作为参数。我不想编辑这个文件,因为我是通过一个Slack频道来做的。

- hosts: nagiosserver 

    tasks: 
    - name: Executing a script 
    command: sh /home/aravind/downtime.sh {hostname} {duration} {comments} 
+0

欢迎堆栈溢出使用这些额外的变量,你可以请编辑和添加您的SH文件内容 –

回答

0

如果您是通过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}}"