首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >maven_artifact模块的ansible - python问题

maven_artifact模块的ansible - python问题
EN

Stack Overflow用户
提问于 2016-02-05 12:43:12
回答 5查看 7.5K关注 0票数 2

我有ansible (v2.0.0.2)和python (v2.7.6),我正在运行'maven_artifact‘模块。

作为一个直接的ansible命令,它工作得很好。

代码语言:javascript
复制
ansible localhost -m maven_artifact -a "group_id=commons-collections artifact_id=commons-collections dest=/tmp/commons-collections-latest.jar" -vvvv

但是当我通过剧本做同样的事情时

代码语言:javascript
复制
- name: download via maven
maven_artifact: group_id=junit artifact_id=junit dest=/tmp/junit-latest.jar

如果出现此错误,则失败

代码语言:javascript
复制
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}

我相信可能与python lxml模块有关,并且我找到了这些现有的票证。

代码语言:javascript
复制
http://stackoverflow.com/questions/13355984/get-errors-when-import-lxml-etree-to-python
http://stackoverflow.com/questions/4598229/installing-lxml-module-in-python

我想知道有人能解决这个问题吗?

编辑-添加python路径详细信息

我运行这个命令来查看python主页上的路径

代码语言:javascript
复制
14:55:11@pcZBook-15:/usr/local/etc$ python -c 'import sys; print(":".join(sys.path))'

文件夹列表是

代码语言:javascript
复制
:/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
EN

回答 5

Stack Overflow用户

发布于 2016-02-15 16:09:06

似乎ansible试图在远程目标主机上执行'maven_artifact‘命令,因为远程目标主机没有所需的python库。

在我的例子中,我只想在本地的'ansible_host‘上运行命令,所以我只添加了'local_action’前缀,命令就运行了。

代码语言:javascript
复制
- name: download via maven
  local_action: maven_artifact group_id=junit artifact_id=junit dest=/tmp/junit-latest.jar
票数 5
EN

Stack Overflow用户

发布于 2016-11-15 17:25:35

我通常会打电话给:

代码语言:javascript
复制
- name: Install PIP
  apt: name=python-pip state=present

- name: Install lxml
  pip: name=lxml
票数 5
EN

Stack Overflow用户

发布于 2017-04-20 09:40:30

就这么做

sudo apt-get install python-lxml

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35224575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档