Eu quero instalar o repositório RPM Fusion na máquina virtual Fedora 32 Server com Ansible
Eu tentei várias possibilidades sem sucesso:
- 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'
ou
- 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'
Toda vez que a tarefa é ignorada
TASK [Enable the RPM Fusion repository] *******************************************************************************
skipping: [my-ip-address]
Você tem alguma ideia?
Obrigado!
Não use
command
para instalar pacotes. Isso não tem esperança de idempotência e falhará de várias e sutis maneiras.A razão pela qual estes são ignorados é que o
os_family
fato nunca éFedora
. Ele é definido comoRedHat
em sistemas Fedora.Você deve verificar o nome da distribuição diretamente:
Você tem mais problemas, porém, e seu
dnf
jogo também falhará, porque você tentou usar uma substituição de shell e o Ansible não fará nada com isso.Seu jogo deve ficar mais parecido com isso:
Na verdade, estamos fornecendo o número da versão por meio de substituição, para que tenha "32" em vez de um comando shell aleatório. E é claro que neste caso não há necessidade de verificar a versão de distribuição
when:
porque a versão relevante já é fornecida no nome do pacote.