Existe uma maneira (simples) de fazer com que o fantoche use um arquivo disponível na internet para a propriedade Source de um arquivo?
por exemplo:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Existe uma maneira (simples) de fazer com que o fantoche use um arquivo disponível na internet para a propriedade Source de um arquivo?
por exemplo:
file { "/home/text.txt":
source => [
"http://www.example.com/text.txt",
]
}
Respostas:
Estou escrevendo uma resposta atualizada para notificar futuros leitores que agora o recurso File realmente implementa a fonte HTTP.
Dos documentos :
fonte
Um arquivo de origem, que será copiado no local no sistema local. Este atributo é mutuamente exclusivo com conteúdo e destino. Os valores permitidos são:
- puppet: URIs, que apontam para arquivos em módulos ou pontos de montagem do servidor de arquivos Puppet.
- Caminhos totalmente qualificados para arquivos disponíveis localmente (incluindo arquivos em compartilhamentos NFS ou unidades mapeadas do Windows).
- file: URIs, que se comportam da mesma maneira que os caminhos de arquivos locais.
- http: URIs, que apontam para arquivos servidos por servidores da web comuns
Então você pode usar a construção como a escreveu:
file { "/home/text.txt":
source => "http://www.example.com/text.txt",
}
Ele é solicitado como um recurso há anos ... Mas você acabaria precisando de uma função personalizada para isso ... ou para usar curl
ou wget
. Veja Puppet Forge .
O que há no text.txt?
Não é possível imediatamente:
fonte:
...
Os esquemas de URI disponíveis são fantoches e arquivos. Os URIs do Puppet recuperam arquivos do servidor de arquivos interno do Puppet
Acabei usando o define
que encontrei na 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'
}