Existe-t-il un moyen (simple) pour que la marionnette utilise un fichier disponible sur Internet pour la propriété Source d'un fichier?
par exemple:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Existe-t-il un moyen (simple) pour que la marionnette utilise un fichier disponible sur Internet pour la propriété Source d'un fichier?
par exemple:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Réponses:
J'écris une réponse mise à jour pour informer les futurs lecteurs que la ressource File implémente désormais la source HTTP.
De la documentation :
la source
Un fichier source, qui sera copié en place sur le système local. Cet attribut est mutuellement exclusif avec le contenu et la cible. Les valeurs autorisées sont:
- puppet: URI, qui pointent vers des fichiers dans des modules ou des points de montage de serveur de fichiers Puppet.
- Chemins d'accès complet aux fichiers disponibles localement (y compris les fichiers sur les partages NFS ou les lecteurs mappés Windows).
- file: URI, qui se comportent de la même manière que les chemins de fichiers locaux.
- http: URI, qui pointent vers des fichiers servis par des serveurs Web communs
Vous pouvez donc utiliser la construction telle que vous l'avez écrite:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
Cela a été demandé en tant que fonctionnalité pendant des années ... Mais vous finirez par avoir besoin d'une fonction personnalisée pour cela ... ou pour utiliser curl
ou wget
. Voir Puppet Forge .
Que contient text.txt?
Ce n'est pas possible dès la sortie de la boîte:
la source:
...
Les schémas d'URI disponibles sont les marionnettes et les fichiers. Les URI de Puppet récupèrent les fichiers du serveur de fichiers intégré de Puppet
J'ai fini par utiliser define
j'ai trouvé sur 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'
}