首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ansible需要python-apt,但它已经安装了

Ansible需要python-apt,但它已经安装了
EN

Stack Overflow用户
提问于 2018-08-01 06:00:18
回答 2查看 18.6K关注 0票数 12

Prologue:我只是在移动ansible的第一个stesp,所以请耐心等待

另外:我在'Ansible demands installing MySQL-python despite it was already installed'上读到了答案,但我的情况不同,因为在本地,在控制机器上,一切都是完美的;多亏了这个问题,我发现我的问题出在远程控制机器上。所以我的问题是相同的,但链接的问题不包含解决我的问题的答案。

我正在从命令行测试ansible。例如,我可以成功地ping通

代码语言:javascript
复制
~/.ssh$ ansible openvpn -C -m "ping"
192.168.1.225 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

我试着启动一个apt update

我不确定这是否是与apt-get update等价的正确语法,但这不是问题所在

当我要求做一次演练时,我正在使用-C来看看ansible对我说了什么。

代码语言:javascript
复制
$ ansible openvpn -C -m "apt update-cache=yes"
192.168.1.225 | FAILED! => {
    "changed": false,
    "msg": "python-apt must be installed to use check mode. If run normally this module can auto-install it."
}

编辑:正如@Davide Maze建议的那样,这可能是由于缺少python-apt。我查过了,但_I有python-apt

代码语言:javascript
复制
$ python -V
Python 2.7.15rc1

$ pip list
... cut ...
python-apt (1.6.2)
... cut ...

$ which python
/usr/bin/python

我的问题是:为什么ansible告诉我python-apt没有安装,以及如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-01 07:00:50

感谢@David Maze为我指明了正确的方向

我是在控制器机器中检查python-apt,而不是在受控机器中。

因此,我使用以下命令将包从控制器安装到受控机器中:

代码语言:javascript
复制
$ ansible openvpn -m "apt name=python-apt state=latest" --become-user realtebo

您也可以使用下面的表单,该表单执行sudo apt-get update并等待操作员输入密码。用户是通过ssh登录的用户;因此请检查您的配置。在我的例子中,我使用的是ssh密钥;密码登录是完全禁用的。

代码语言:javascript
复制
$ ansible openvpn -m apt -a "update-cache=yes" --become --ask-become-pass

提示1:为了避免这种交互,可以使用vault,但我还没有尝试过。

提示2:此外,--ask-become-pass不在您可能要查找的文档中,在letter a处;这是因为该选项在-K中被缩写为大写,所以请向下查找See the doc

在确保包python-apt远程可用之后,-C选项开始工作,这正是因为现在python-apt可远程可用。

代码语言:javascript
复制
ansible openvpn -C -m "apt name=python state=latest"

192.168.1.225 | SUCCESS => {
    "cache_update_time": 1533077635,
    "cache_updated": false,
    "changed": false
}
票数 6
EN

Stack Overflow用户

发布于 2021-01-23 21:02:23

我在运行ansible-playbook时使用ansible_python_interpreter参数解决了这个错误,如下所示。

ansible-playbook playbook_name.yml -e ansible_python_interpreter=/usr/bin/python --check

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

https://stackoverflow.com/questions/51622712

复制
相关文章

相似问题

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