Esiste un modo (semplice) per fare in modo che le marionette utilizzino un file disponibile su Internet per la proprietà Source di un file?
per esempio:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Esiste un modo (semplice) per fare in modo che le marionette utilizzino un file disponibile su Internet per la proprietà Source di un file?
per esempio:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Risposte:
Sto scrivendo una risposta aggiornata per informare i futuri lettori che ora la risorsa File implementa effettivamente l'origine HTTP.
Dai documenti :
fonte
Un file di origine, che verrà copiato in posizione sul sistema locale. Questo attributo si esclude a vicenda con contenuto e target. I valori consentiti sono:
- burattino: URI, che puntano a file nei moduli o punti di montaggio del file server Puppet.
- Percorsi completamente qualificati per i file disponibili localmente (inclusi i file su condivisioni NFS o unità mappate Windows).
- file: URI, che si comportano allo stesso modo dei percorsi di file locali.
- http: URI, che puntano a file serviti da server Web comuni
Quindi puoi usare il costrutto mentre lo scrivevi:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
È stato richiesto come funzionalità per anni ... Ma alla fine avresti bisogno di una funzione personalizzata per questo ... o per usare curl
o wget
. Vedi Puppet Forge .
Cosa c'è in text.txt?
In questo momento non è possibile:
fonte:
...
Gli schemi URI disponibili sono pupazzo e file. Gli URI Puppet recupereranno i file dal file server integrato di Puppet
Ho finito per usare define
ho trovato su Internet:
define remote_file($remote_location=undef, $mode='0644'){
exec{ "retrieve_${title}":
command => "/usr/bin/wget -q ${remote_location} -O ${title}",
creates => $title,
}
file{$title:
mode => $mode,
require => Exec["retrieve_${title}"],
}
}
remote_file{'/home/text.txt':
remote_location => 'http://www.example.com/text.txt'
}