通过ansible安装deb包

Ros*_*sov 5 deb ansible

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

- name: Install deb
  delegate_to: app1
  apt:
    deb: https://example.com/deb/package.deb
Run Code Online (Sandbox Code Playgroud)

或者

- name: Install deb
  delegate_to: app1
  apt:
    deb: /path/to/deb
Run Code Online (Sandbox Code Playgroud)

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

小智 9

您必须使用Ansible的权限提升方法。安装软件包需要特权。becomebecome_method: sudosudo

- name: Install deb
  delegate_to: app1
  apt:
    deb: /path/to/deb
  become: true
Run Code Online (Sandbox Code Playgroud)


Ros*_*sov 0

对任务的以下修改有帮助

- name: Install deb
  command: apt install /path/to/package.deb -y --allow-downgrades
Run Code Online (Sandbox Code Playgroud)

apt模块的allow_downgrade指令出现了,从ansible 2.12版本开始,在我的2.9中它不起作用,因为force指令不起作用,我不得不使用一个不太好的方法来实现该任务。