在ansible中,我该如何将命令行参数传递给系统脚本?
例如,在远程主机上
$ /usr/share/my-script \
--my-arg1=gist.github.com \
--my-arg2="foo bar"
值foo bar
是我需要在role
级别定义的内容,以及随每个系统脚本而变化的内容。
如果有办法将foo bar
的值放在defaults
中,然后在角色运行时让jinja2
替换它。关于我该如何处理它的任何建议?
答案 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 }}"
如上所述,您可以在角色变量文件中定义var1
和var2
默认值,如下所示:
var1: "gist.github.com"
var2: "foo bar"
您还可以在运行时传递值,如下所示:
ansible-playbook -extra-vars "var1=gist1.github.com var2=abcxyz" <playbook_name>