authorized key mit ansible lösen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
pixelpirat
Beiträge: 158
Registriert: 05.07.2007 17:22:21

authorized key mit ansible lösen

Beitrag von pixelpirat » 20.12.2021 18:02:36

Hallo,

ich probiere mich gerade mit ansible. Einiges habe ich schon hinbekommen und es macht Spaß wieder etwas neues zu lernen.
Mein Problem liegt in einer Loop Schleife in Verbindung mit der Lookup() Funktion. Ich lege einen User an und will dann sein Public-Key auf die Maschien kopieren
Hier ist der Tasks der es machen soll. Steht in der task/main.yml

Code: Alles auswählen

- name: Public Keys auf die Maschine kopieren
  authorized_key: 
    user: "{{ item['name'] }}"
    state: present
    key: "{{ lookup('file','netoldie.pub') }}"
  loop: "{{ users }}"
Die Userliste lieg in vars/users_and_groups.yml

Code: Alles auswählen

users: 
  - name: ansible
    job: admin
    groups: admin, sshers
    status: present
    key: ansible.pub

  - name: "{{ admin_user }}"
    job: admin
    groups: admin, sshers, sudoers
    status: present
    key: "{{ admin_user }}.pub"
Das Problem liegt in dieser Zeile:

Code: Alles auswählen

    key: "{{ lookup('file','ansible.pub') }}"
So funktioniert es. Wenn ich ab aber den Key dynamisch einbinden will, ists vorbei mit lustig.

Code: Alles auswählen

  authorized_key: 
    user: "{{ item['name'] }}"
    state: present
    key: "{{ lookup('file','{{ item['key'] }}') }}"
  loop: "{{ users }}"
Das Problem liegt in der Konstellation mit den Anführungszeichen. Dann kommt die Fehlermeldung:

Code: Alles auswählen

template error while templating string: expected token ',', got 'key'. String: {{ lookup('file','{{ item['key'] }}') }}"
Ich habe schon alles Mögliche rumprobiert und weiß nicht mehr weiter.

Freue mich über Lösungsansätze
Danke im voraus.

Antworten