Sto provando a fornire una VM vagabonda per consentire agli utenti di fornire il proprio file bash_profile.local ma non voglio che questo file venga rintracciato nel repository vcs di vm. Ho un file di traccia bash_profile.local.dist che possono essere rinominati. Come posso dire a puppet di creare un file solo se esiste il file sorgente? Attualmente funziona correttamente ma registra un errore durante il provisioning e questo è quello che sto cercando di evitare.Come si fa a puppet copiare un file solo se la fonte esiste?
Questo è il manifesto:
class local
{
file { '.bash_profile.local':
source => 'puppet:///modules/local/bash_profile.local',
path => '/home/vagrant/.bash_profile.local',
replace => false,
mode => 0644,
owner => 'vagrant',
group => 'vagrant',
}
}
Bel trucco, grazie. Se qualcuno sta leggendo questo e chiedendosi cosa sta succedendo, file() proverà a leggere ogni file a sua volta finché non avrà successo, quindi se il primo file non esiste leggerà/dev/null che restituisce ''. – pdizz
Perché non utilizzare il metodo a meno o solo nella risorsa file e nel test di bash [funzione] (http://ryanuber.com/04-17-2010/conditional-file-creation-puppet.html)? – mestachs
Questo è ottimo, ma vorrei aggiungere che se copi il codice in questa risposta e inserisci una variabile nel percorso, le virgolette singole significano che le variabili non sono interpretate. Cambia le virgolette singole in virgolette se usi una variabile. (-: –