2016-02-05 61 views
-1

[Ansible版本== 2.1.0]通過ansible

運行帶參數的腳本爲了運行一個腳本這是目前本地目標服務器上,我們可以使用Ansible的「命令」模塊。以下可以很容易地完成:

- name: Executing getpkgs.sh to download packages. 
    command: sh "/path/to /dir/scriptName.sh" arg1 arg2 arg3 arg4 

我有我的腳本名稱和參數存儲在可變的變量。例如,下面的變量包含了所有的腳本名稱和參數傳遞給這些腳本:

scripts_to_execute: 
    - { filename: "/path/to/file/file1.sh", args: "arg11 arg12 arg13"} 
    - { filename: "/path/to/file/file2.sh", args: "arg21 arg22"} 
    - { filename: "/path/to/file/file3.sh", args: "arg31 arg32 arg33 arg34"} 

,我想所有這些文件中已經存在在目標服務器上,使用with_items執行。試圖實現類似以下內容:

- name: Executing all files. 
    command: sh "{{item.filename}}" "{{item.args}}" 
    with_items: scripts_to_execute 

我想通過腳本名稱後跟包含要傳遞到腳本中的所有參數的字符串。但它正在考慮將這個參數串作爲單個參數。

+2

你能發佈確切的錯誤信息嗎? – udondan

+0

@udondan,語法錯誤是由於其他問題,我糾正它。編輯了這個問題。我試圖傳遞多個參數,但它將字符串視爲單個參數。請幫忙; – Shasha99

回答

4

但它正在考慮作爲單個參數的參數字符串。

我認爲這是有道理的,因爲你通過引號中的參數。你嘗試沒有引號?

- name: Executing all files. 
    command: sh "{{item.filename}}" {{item.args}} 
    with_items: scripts_to_execute