staging.inyokaproject.org

Auf Unterelement in Ansible-Liste zugreifen

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Hallo,

ich habe für Ansible unter vars eine Liste definiert, die so aussieht:

packages:
  - { package: git, name: git-2.18.0, url: 'https://mirrors.edge.kernel.org/pub/software/scm/git/' } 
  - { package: cmake, name: cmake-3.19.2, url: 'https://github.com/Kitware/CMake/releases/download/v3.19.2/' }
  - { package: yaz, name: yaz-5.30.3, url: 'http://ftp.indexdata.dk/pub/yaz/' }

Jetzt möchte ich gern für einen Task auf den name von dem package git zugreifen (um Symlinks auf git-prompt und git-completion zu setzen). Bei so ziemlich all meinen Versuchen bekomme ich folgende Meldung:

'list object' has no attribute 'package'

Kann mir jemand sagen, wie ich ganz explizit den name erhalte von dem package git erhalte?

Ich hab da schon diverse Dinge ausprobiert, aber bin bisher nie beim Ziel gelandet. Mein letzter Versuch für den Task sah so aus, der aber wieder zu oben erwähnter Meldung führte:

- name: Set symlinks for git
  debug:
    msg: "{{ item.name }}"
  with_items: "{{ packages.package| select('match','(git-.*)')| list}}"

Ich muss noch dazu sagen, dass ich mich mit Jinja2 noch nicht wirklich auskenne.

Doc_Symbiosis

(Themenstarter)
Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Ok, hab's jetzt selbst herausgefunden. So funktioniert es:

  with_items: "{{ packages| selectattr('name','match','git-.*')}}"
Antworten |