我正在尝试使用 Ansible 在多个远程服务器中安装 Debian 软件包。该包已上传到目标服务器的文件夹中。我使用 apt 模块创建了 Ansible 剧本:
- name: Installing Agent
apt:
deb: /home/administrator/ftp/SentinelAgent_linux_v4_4_2_3.deb
在执行过程中我收到以下错误:
TASK [Installing Agent]
***********************************************
fatal: [brw.01.bwt]: FAILED! => {"changed": false, "msg": "Unable to install package: E:Invalid archive member header"}
在另一台服务器中,我可以使用 dpkg 命令手动安装该软件包,这告诉我 .deb 文件没有任何问题。
任何关于为什么这个剧本不起作用的线索将不胜感激。我在 Ubuntu 20.04.1 虚拟机中使用 Ansible 版本 2.9.6。
正如 hedgie 在评论中指出的那样,该包xz-utils
需要安装 Ansible 才能通过以下方式安装 .deb 软件包apt
模块。此要求在apt 模块的官方 Ansible 文档 https://docs.ansible.com/ansible/latest/collections/ansible/builtin/apt_module.html#parameter-deb。为了deb
参数,它说它需要一个string
这是:
远程计算机上 .deb 包的路径。
如果路径中包含 ://,ansible 将在安装之前尝试下载 deb。 (2.1版本添加)
需要xz-utils包解压deb包的控制文件进行安装。
解决方案是,在您之前apt:
任务,添加另一个任务:
- name: Install prerequisites for Ansible to install .deb via apt module
apt:
name:
- xz-utils
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)