我有 ansible (v2.0.0.2) 和 python (v2.7.6),我正在运行“maven_artifact”模块。
作为一个直接的命令,它工作正常
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}
我相信可能与python-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路径详细信息
我运行此命令以查看python主页上的路径
14:55:11@pcZBook-15:/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
做就是了
sudo apt-get安装python-lxml
我通常会打电话给:
- name: Install PIP
apt: name=python-pip state=present
- name: Install lxml
pip: name=lxml
ansible似乎试图在没有所需python库的远程目标主机上执行“maven_artifact”命令。
在我的例子中,我只想在本地“ansible_host”上运行命令,所以我只添加了“local_action”前缀,命令就运行了。
- name: download via maven
local_action: maven_artifact group_id=junit artifact_id=junit dest=/tmp/junit-latest.jar
什么是Ansible Module? bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;module就是Ansible的“命令”,module是ansible命令行和脚本中都需要调用的。常用的Ansible module有yum、copy、template等。 在bash,调用命令时可以跟不同的参数,每个命令的参数都是该命令自定义的;同样,ansible
介绍两类Modules: Core Module和Extra module Extra module的配置和使用方法 通过命令行查看modules的用法
我试图建立vm上IBMPowervc,实际上使用的是3.12.0版本的RHEL 7.4.这个(os_server)模块抛出错误msg:阴影是这个模块所必需的。谷歌搜索后,我尝试了不同的方法,但还没有运气。 我也尝试ansible_python_interpreter:“/usr/bin/env 蟒蛇”作为extra_var,但没有工作。似乎阴影安装在可连接的塔机上,但不知何故,它无法与openst
你Ansible Module文档上查看单个Module的时候,每一个Module文档的底部都会标识, 这是一个”Core Module”, 或者这是一个”Extra Module”. 比如, yum就是一个core module, yum_repository就是一个extra module, Core Module 不需要格外下载和配置,安装ansible后就可以直接使用的. 比较常用的mod
我在Ansible脚本模块解释with_items变量时遇到了问题。 vsa_deploy_config/tasks/main.yml: vsa_deploy_config/vars/main.yml: 当我运行行动手册时,我收到以下错误: 任务[vsa_deploy_config:在中心服务器上部署VSA]* * * * * * * * * * * * * * * * * * * * * * *
学习Linux操作系统,如果不能一些基本的命令,那么真的没有办法用Linux。所以学习Ansible也非常有必要了解一些常用的module。 接下来介绍一些会在接下来的章节中用到的module,也是很常用的module。 调试和测试类的module ping - ping一下你的远程主机,如果可以通过ansible成功连接,那么返回pong debug - 用于调试的module,只是简单打印一些
我正在尝试将现有的JavaFX应用程序移植到Java9。 这是建造。格雷德尔 我的模块声明:
本文向大家介绍Node.js readline模块与util模块的使用,包括了Node.js readline模块与util模块的使用的使用技巧和注意事项,需要的朋友参考一下 1. 使用readline模块逐行读取流数据 1.1. 创建Interface对象 在readline模块中,通过Interface对象的使用来实现逐行读取流数据的处理。因此首先要创建Interface对象,在readlin