Хотя это не то, что вам следует делать (см. Ниже), этого можно достичь, добавив контроль к вашему l oop и немного изменив список пакетов.
- name: Install packages by a direct RPM
become: true
package:
name: "{{ item.link }}"
state: present
with_items:
- link: https://go.skype.com/skypeforlinux-64.rpm
name: Skype
- link: https://zoom.us/client/latest/zoom_x86_64.rpm
name: Zoom
loop_control:
label: "{{ item.name }}"
Между тем, это все еще плохая практика в этом случае, потому что вы не должны l oop сверх агности c package
, а так же указывать c yum
, apt
... модулей. Вы можете передать список пакетов для установки непосредственно в опции имени. Документация для этого отсутствует для package
, но четко объяснена на указанных страницах c модулей.
Это способ достижения того же результата, что и выше, с лучшей производительностью (один единственный вызов yum / dnf в системе) и меньше потенциальных ошибок (перекрестные зависимости между пакетами в списке ...).
- name: Install Skype and Zoom by direct RPM
become: true
package:
name:
- https://go.skype.com/skypeforlinux-64.rpm
- https://zoom.us/client/latest/zoom_x86_64.rpm
state: present
Если вы все еще хотите быть динамическими c для имен и списка ссылок на случай, если вы позже вы хотите добавить больше пакетов к задаче, вот пример возможного способа справиться с этим:
- name: Install from rpm link ({{ packages | map(attribute='name') | join(', ') }})
vars:
packages:
- link: https://go.skype.com/skypeforlinux-64.rpm
name: Skype
- link: https://zoom.us/client/latest/zoom_x86_64.rpm
name: Zoom
package:
name: "{{ packages | map(attribute='link') | list }}"
state: present