Sto cercando di leggere il contenuto di un file, archiviarlo in una variabile e quindi inserirlo in un altro file se non esistono già.Utilizzo di variabili per il nome file e il contenuto del file nel modulo lineinfile
Allora, come sto cercando di andare su questo è la seguente:
# 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 }}') }}"
Ho quindi utilizzare queste variabili nel mio playbook Ansible come segue:
- name: Install SSH authorized key
lineinfile: create=yes dest=~/.ssh/authorized_keys line=" {{ ssh_public_key }}" mode=0644
Tuttavia, quando provo ed eseguo il playbook, ricevo il seguente messaggio di errore:
could not locate file in lookup: {{ ssh_public_key_file }}
Qualcuno può consigliare una soluzione o suggerire cosa potrei aver fatto di sbagliato?
Grazie,
Seán
Ho il sospetto Jinja2 non si espande all'interno virgolette singole . Non sicuro al 100%. In ogni caso, per favore usa il modulo 'template' invece di lineinfile. Sarà molto meno caotico su tutta la linea. – tedder42
Hey @ Seán hai trovato una soluzione per il tuo problema? Al momento ho lo stesso problema e forse puoi condividere la tua soluzione con me/gli altri. Grazie – ByteNudger