2017-06-08 102 views
1

在ansible,我應該如何去傳遞命令行參數的系統腳本?傳遞命令行參數在Ansible角色的系統腳本?

例如,在遠程主機上

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

foo bar是我需要在role水平來定義的東西,一些東西,與每個系統腳本更改。

如果有方法將foo bar的值放入defaults,然後讓jinja2在角色運行時替換它。任何建議我應該怎麼處理它?

+0

你可以發佈你嘗試過什麼? –

+0

@KonstantinSuvorov加入我的答案,爲我工作。 –

回答

0

我得到它通過

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

,我想跑我命令的作用在裏面工作。

您可以在different places定義your_var通過ansible

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>

相關問題