我是 Ansible 的新手。我有一个要传递三个参数的 bash 脚本。我必须从 Ansible 在远程服务器上运行这个 bash 脚本。
基本上,我想在执行 Ansible 命令时将主机名、持续时间和注释字段声明为参数。我不想编辑该文件,因为我是通过 Slack channel 进行的。
- hosts: nagiosserver
tasks:
- name: Executing a script
command: sh /home/aravind/downtime.sh {hostname} {duration} {comments}
最佳答案
如果您通过 ansible-playbook myplay.yml
执行 ansible,您可以通过 -e varname=varvalue
传递额外的变量。一个懒惰的修复方法是运行
ansible-playbook myplay.yml -e my_hostname=foo -e my_duration=bar -e my_comments=foobar
但是您应该考虑主机名已经在您的 list 或收集的事实中定义。
所以你可以更新你的剧本来使用这些额外的变量
- hosts: nagiosserver
tasks:
- name: Executing a script
- command: "sh /home/aravind/downtime.sh {{my_hostname}} {{my_duration}} {{my_comments}}"
关于bash - 在 Ansible 中执行带参数的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45424714/