2016-02-05 104 views
1

我有ansible(v2.0.0.2)和Python(v2.7.6),我運行 'maven_artifact' 模塊。ansible - 蟒蛇LXML問題與maven_artifact模塊

作爲直接ansible命令,它工作正常

ansible localhost -m maven_artifact -a "group_id=commons-collections artifact_id=commons-collections dest=/tmp/commons-collections-latest.jar" -vvvv 

,但是當我通過一個劇本做同樣的

- name: download via maven 
maven_artifact: group_id=junit artifact_id=junit dest=/tmp/junit-latest.jar 

它失敗,此錯誤

fatal: [test01vm1]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "maven_artifact"}, 
"module_stderr": "", 
"module_stdout": "\r\nTraceback (most recent call last):\r\n 
File \"/home/admin123/.ansible/tmp/ansible-tmp-1454675562.75-201853614879442/maven_artifact\", 
line 25, in <module>\r\n from lxml import etree\r\nImportError: 
No module named lxml\r\n", "msg": "MODULE FAILURE", "parsed": false} 

我相信可能與蟒蛇LXML模塊,我發現這些現有票證

http://stackoverflow.com/questions/13355984/get-errors-when-import-lxml-etree-to-python 
http://stackoverflow.com/questions/4598229/installing-lxml-module-in-python 

我想知道可能有人對此有一個解決方法嗎?


編輯 - 添加Python的路徑信息

我跑這個命令來查看是蟒回家走什麼路的

14:55:[email protected]:/usr/local/etc$ python -c 'import sys; print(":".join(sys.path))' 

文件夾列表是

:/opt/stack/keystone 
:/opt/stack/glance 
:/opt/stack/cinder 
:/opt/stack/nova 
:/opt/stack/horizon 
:/usr/lib/python2.7 
:/usr/lib/python2.7/plat-x86_64-linux-gnu 
:/usr/lib/python2.7/lib-tk 
:/usr/lib/python2.7/lib-old 
:/usr/lib/python2.7/lib-dynload 
:/usr/local/lib/python2.7/dist-packages 
:/usr/lib/python2.7/dist-packages 
:/usr/lib/python2.7/dist-packages/PILcompat 
:/usr/lib/python2.7/dist-packages/gtk-2.0 
:/usr/lib/pymodules/python2.7 
:/usr/lib/python2.7/dist-packages/ubuntu-sso-client 
:/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode 

回答

3

它似乎有人試圖在遠程目標主機上執行'maven_artifact'命令,該命令沒有這個請求ired python庫。

在我來說,我只是想運行在本地「ansible_host」所以我剛纔添加的「local_action」前綴和命令運行的命令。

- name: download via maven 
    local_action: maven_artifact group_id=junit artifact_id=junit dest=/tmp/junit-latest.jar 
1

我最常做的就是調用:

- name: Install PIP 
    apt: name=python-pip state=present 

- name: Install lxml 
    pip: name=lxml 
+0

驗證與Ansible 2.4工作液 – Markus

0

只是做

sudo易於得到安裝python-LXML