Ich versuche, den Inhalt einer Datei zu lesen, diese in einer Variablen zu speichern und sie dann in eine andere Datei einzufügen, wenn sie nicht bereits vorhanden sind.Verwenden von Variablen für Dateiname und Dateiinhalte im LineInfile-Modul
So, wie ich bin versucht, um dies zu realisieren ist wie folgt:
# Create a variable that represents the path to the file that you want to read from
ssh_public_key_file: '../../jenkins_master/files/{{ hostvars[inventory_hostname]["environment"] }}/id_rsa.pub'
# Create a variable that represents the contents of this file:
ssh_public_key: "{{ lookup('file', '{{ ssh_public_key_file }}') }}"
ich dann diese Variablen in meinem ansible Textbuch wie folgt verwenden:
- name: Install SSH authorized key
lineinfile: create=yes dest=~/.ssh/authorized_keys line=" {{ ssh_public_key }}" mode=0644
aber wenn ich versuche, und führe das Playbook aus, bekomme ich folgende Fehlermeldung:
could not locate file in lookup: {{ ssh_public_key_file }}
Kann mir jemand eine Lösung empfehlen oder schlage ich vor, was ich falsch gemacht habe?
Danke,
Seán
Ich vermute jinja2 nicht in einfache Anführungszeichen nicht erweitern . Nicht 100% sicher, aber. Bitte benutzen Sie in jedem Fall das 'template' Modul anstelle von lineinfile. Es wird viel weniger chaotisch auf der ganzen Linie sein. – tedder42
Hey @ Seán hast du eine Lösung für dein Problem gefunden? Ich habe derzeit das gleiche Problem und vielleicht können Sie Ihre Lösung mir/den anderen teilen. Vielen Dank – ByteNudger