¿Hay una manera (simple) de hacer que Puppet use un archivo disponible en Internet para la propiedad Source de un archivo?
p.ej:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
¿Hay una manera (simple) de hacer que Puppet use un archivo disponible en Internet para la propiedad Source de un archivo?
p.ej:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Respuestas:
Estoy escribiendo una respuesta actualizada para notificar a los futuros lectores que ahora el recurso File implementa la fuente HTTP.
De los documentos :
fuente
Un archivo fuente, que se copiará en su lugar en el sistema local. Este atributo es mutuamente exclusivo con contenido y destino. Los valores permitidos son:
- puppet: URI, que apuntan a archivos en módulos o puntos de montaje del servidor de archivos Puppet.
- Rutas totalmente calificadas a archivos disponibles localmente (incluidos archivos en recursos compartidos NFS o unidades mapeadas de Windows).
- file: URI, que se comportan igual que las rutas de archivos locales.
- http: URI, que apuntan a archivos servidos por servidores web comunes
Entonces puede usar la construcción tal como la escribió:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
Se ha solicitado como característica durante años ... Pero terminaría necesitando una función personalizada para esto ... o para usar curl
o wget
. Ver Forja de marionetas .
¿Qué hay en text.txt?
No es posible salir de la caja en este momento:
fuente:
...
Los esquemas de URI disponibles son títeres y archivos. Los URI de Puppet recuperarán archivos del servidor de archivos integrado de Puppet
Terminé usando lo define
que encontré en 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'
}