将命令行参数传递给Ansible角色中的系统脚本?

时间:2017-06-08 16:15:56

标签: server ansible

在ansible中,我该如何将命令行参数传递给系统脚本?

例如,在远程主机上

$ /usr/share/my-script \
--my-arg1=gist.github.com \
--my-arg2="foo bar"

foo bar是我需要在role级别定义的内容,以及随每个系统脚本而变化的内容。

如果有办法将foo bar的值放在defaults中,然后在角色运行时让jinja2替换它。关于我该如何处理它的任何建议?

2 个答案:

答案 0 :(得分:0)

我是通过

开始工作的
- name: foo bar
  shell: |
    /usr/share/my-script \
    --my-arg1=gist.github.com \
    --my-arg2={{ your_var }}

在我想要运行命令的角色里面。

您可以在different places处定义your_var,如ansible

所允许的那样

答案 1 :(得分:0)

您可以使用script模块来实现它,例如:

- script: /usr/share/my-script --my-arg1 "{{ var1 }}" --my-arg2 "{{ var2 }}"

如上所述,您可以在角色变量文件中定义var1var2默认值,如下所示: var1: "gist.github.com" var2: "foo bar"

您还可以在运行时传递值,如下所示: ansible-playbook -extra-vars "var1=gist1.github.com var2=abcxyz" <playbook_name>

相关问题