在Ansible中使用参数执行bash脚本

时间:2017-07-31 20:27:03

标签: bash ansible slack

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

基本上,我想在执行Ansible命令时将主机名,持续时间和注释字段声明为参数。我不想编辑文件,因为我是从Slack频道进行编辑的。

- hosts: nagiosserver

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

1 个答案:

答案 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}}"