我想用 Ansible 在 Fedora 32 Server 虚拟机上安装 RPM Fusion 存储库
我尝试了各种可能性均未成功:
- name: Enable the RPM Fusion repository
command: dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion- free-release-$(rpm -E %fedora).noarch.rpm
when: ansible_facts['os_family'] == 'Fedora' and ansible_facts['distribution_major_version'] == '32'
或者
- name: Enable the RPM Fusion repository
dnf:
name: 'https://download1.rpmfusion.org/free/fedora/rpmfusion- free-release-$(rpm -E %fedora).noarch.rpm'
state: present
when: ansible_facts['os_family'] == 'Fedora' and ansible_facts['distribution_major_version'] == '32'
每次跳过任务
TASK [Enable the RPM Fusion repository] *******************************************************************************
skipping: [my-ip-address]
你有想法吗?
谢谢!
不要
command
用于安装软件包。这没有幂等性的希望,并且会以各种微妙的方式失败。这些被跳过的原因是
os_family
事实是从不Fedora
。它RedHat
在 Fedora 系统上设置为。您应该直接检查发行版名称:
但是,您还有更多问题,并且您的
dnf
游戏也会失败,因为您尝试使用 shell 替换,而 Ansible 不会对此做任何事情。你的游戏应该看起来更像这样:
我们实际上是通过替换提供版本号,因此它将具有“32”而不是随机的 shell 命令。当然,在这种情况下,不需要检查分发版本,
when:
因为包名称中已经提供了相关版本。