通过 ansible 安装 deb 包

Installing the deb package via ansible

我正在尝试使用 ansible 在远程服务器上安装 deb 包,使用以下结构

- name: Install deb
  delegate_to: app1
  apt:
    deb: https://example.com/deb/package.deb

- name: Install deb
  delegate_to: app1
  apt:
    deb: /path/to/deb

剧本有效,说一切正常,但实际上没有安装包,如果您连接到远程服务器并手动 运行 apt install /path/to/deb,则安装包。我尝试使用ansible将deb复制到服务器并通过从Internet资源下载包来安装它,结果总是一样

对于 Ansible,您必须使用 privilege escalation 方法 becomebecome_method: sudo。安装包需要 sudo 权限。

- name: Install deb
  delegate_to: app1
  apt:
    deb: /path/to/deb
  become: yes

任务的以下修改有帮助

- name: Install deb
  command: apt install /path/to/package.deb -y --allow-downgrades

apt 模块的 allow_downgrade 指令出现,从 ansible 2.12 版本开始在我的 2.9 中它不起作用,因为 force 指令不起作用,我不得不使用一个不是很不错的方法。