2017-04-21 57 views
2

是否有一種簡單的方法來找回如何精確地完成劇本(劇本)試圖做的事情?如何從完整的劇本中獲取命令

E.g.我有

- name: Install required packages 
    yum: name={{item}} state=present 
    with_items: 
    - nmp 
    become: True 

而且我想:

sudo yum install nmp 

這麼說,我想知道是什麼命令(OS級)ansible運行。 基本上,我需要的逆過程:Ansible and Playbook. How to convert shell commands into yaml syntax?

+0

只需閱讀代碼:[''yum.py'](https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/packaging/os/yum.py)。 – techraf

+2

詳細說明'-vvvv' – spinkus

+0

guys(@techraf,@spinkus),是否有一個簡單的問題是如何獲取命令 - 不從-vvvv爬行大量日誌或讀取代碼。我需要100個命令在劇本中使用 – xhudik

回答

2

從這裏評論總結以上 [1][2]中央點。

Ansible很少運行外部命令,它主要是Python代碼&正在使用Python庫來控制主機。因此,Ansible的「翻譯」不一定會將yumAnsible module)的使用轉換爲yum(CLI)調用。

儘管您可能能夠依賴於輸出,但在某些情況下,通過解析輸出ansible-playbook -vvv foo.yml中的命令序列,實現將最好是片狀。

我鼓勵你繼續在這個主題上討論你想要完成的事情。很可能已經有了一個解決方案,並且有人可以將您指向一個已經存在的工具。