【问题标题】:Broken package installation using Ansible on debian 11 Bullseye在 debian 11 Bullseye 上使用 Ansible 安装损坏的软件包
【发布时间】:2021-05-29 09:13:51
【问题描述】:

我想在 Debian 测试中使用 Ansible 2.7.7 安装 debian 软件包(目前)

我尝试执行这个简单的任务:

  tasks:
  - name: install basic packages
    apt:
      name: ['mc', 'htop', 'strace','sudo','screen','lshw', 'postfix', 'etckeeper']
      state: present


但安装失败并显示奇怪的消息:

TASK [install basic packages] *********************************************************************************
fatal: [webserver.vitexsoftware.cz]: FAILED! => {"changed": false, "msg": "Could not import python modules: apt, apt_pkg. Please install python-apt package."}
        to retry, use: --limit @/home/vitex/Projects/VitexSoftware/Ansible/playbooks/orchestrate.retry

apt 所需的 python 包安装为 python3-apt

vitex@webserver:~/Projects/VitexSoftware/DockerTools$ aptitude search python | grep '\-apt'
i A python-apt-common - Python interface to libapt-pkg (locales)
p  python-apt-dev - Python interface to libapt-pkg (development files)
p  python-apt-doc - Python interface to libapt-pkg (API documentation)
i  python3-apt - Python 3 interface to libapt-pkg
p  python3-apt-dbg - Python 3 interface to libapt-pkg (debug extension)
v  python3-apt-dbg:any - 
v  python3-apt:any - 
p  python3-aptly - Aptly REST API client and useful tooling - Python 3.x
v  python3.9-apt - 
v  python3.9-apt-dbg - 
v  python3.9-apt-dbg:any - 
v  python3.9-apt:any - 

github 上有一个已关闭的未解决问题:https://github.com/ansible/ansible/issues/73535,它不会以某种方式帮助我。

如何在 Debian 10 上工作?

【问题讨论】:

  • 检查遥控器上的ansible_python,以确保您使用的是您认为的安装,并最终将该主机的ansible_python_interpreter设置为包含模块的正确版本(或使用pip安装它)另一个版本...)。有关更多信息,请查看interpreter discovery 上的文档
  • [webservers] webserver.vitexsoftware.cz ansible_host=10.11.56.210 ansible_python_interpreter=/bin/python3 帮我安装包。

标签: python-3.x linux ansible debian bullseye


【解决方案1】:

hosts文件中python3作为解释器的规范

[webservers]
webserver.vitexsoftware.cz ansible_host=10.11.56.210 ansible_python_interpreter=/bin/python3

做好它的工作:

TASK [install basic packages] ************************************************************************************************************************************************************************************************************************************************
changed: [webserver.vitexsoftware.cz]

【讨论】:

  • 有谁知道为什么这是必要的?我并不是说作为被动攻击性刺拳,我只是字面意思是为什么你必须指定python3? python --version 在全新的 Debian Stable(“Bullseye”)安装中显示 2.7.18,确实没有“python-apt”包,但有一个“python-apt-common”?您的建议有效,谢谢@cybervitexus!
  • 并非每个系统都是新鲜的。一些系统几年前开始使用默认 python 2 的 debian 8。python-apt 来自 Ubuntu 世界,您可以使用 pip 命令将其安装在 debian 机器上:pypi.org/project/python-apt
【解决方案2】:

另一个对我有用的选项是从目标主机中删除 python2。

【讨论】:

猜你喜欢
  • 2020-09-08
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2016-10-08
  • 2013-09-28
  • 2017-02-25
  • 2012-02-15
相关资源
最近更新 更多