我正在尝试使用 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
playbook 可以工作,说一切正常,但实际上软件包尚未安装,如果您连接到远程服务器并手动运行
apt install /path/to/deb
,则软件包已安装。我尝试使用ansible将deb复制到服务器并通过从Internet资源下载包来安装它,结果总是相同的
对于 Ansible,您必须使用 权限升级 方法
become
和 become_method: sudo
。安装软件包需要 sudo
权限。
- name: Install deb
delegate_to: app1
apt:
deb: /path/to/deb
become: true
对任务进行以下修改有帮助
- name: Install deb
command: apt install /path/to/package.deb -y --allow-downgrades
apt模块的allow_downgrade指令出现了,从ansible 2.12版本开始,在我的2.9中它不起作用,因为force指令不起作用,我不得不使用不太好的方法来实现任务。