A fonte de arquivo do Puppet pode ser de um serviço da web?

9

Existe uma maneira (simples) de fazer com que o boneco 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",
  ]
}
    
por gunwin 27.10.2014 / 15:15

3 respostas

2

Estou escrevendo uma resposta atualizada para notificar leitores futuros de que agora o recurso File realmente implementa a origem HTTP.

De os documentos :

source

A source file, which will be copied into place on the local system. This attribute is mutually exclusive with content and target. Allowed values are:

  • puppet: URIs, which point to files in modules or Puppet file server mount points.
  • Fully qualified paths to locally available files (including files on NFS shares or Windows mapped drives).
  • file: URIs, which behave the same as local file paths.
  • http: URIs, which point to files served by common web servers

Assim, você pode usar a construção conforme a escreveu:

file { "/home/text.txt":
  source => "http://www.example.com/text.txt",
}
    
por 27.10.2016 / 11:45
4

Tem sido solicitado como um recurso por anos ... Mas você acabaria precisando de uma função personalizada para isso ... ou para usar curl ou wget . Veja Puppet Forge .

O que há em text.txt?

    
por 27.10.2014 / 15:20
3

Não é possível sair da caixa agora:

source:

...

The available URI schemes are puppet and file. Puppet URIs will retrieve files from Puppet’s built-in file server

Acabei usando 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'
}
    
por 27.10.2014 / 15:34