Suponho que você já entende os princípios de exportação e coleta de recursos de tipo individuais. Só não como traduzir esses recursos individuais em um único arquivo. O Puppet tem dois métodos para fazer isso:
- Augeas
- módulo
puppet-concat
do R.I.Pienaar
Augeas é uma ferramenta muito inteligente, mas pode ser complexa se você tiver que começar a escrever e distribuir suas próprias lentes. No entanto puppet-concat
é muito simples de entender. Não testei o seguinte para a sintaxe, mas isso deve colocá-lo no caminho certo:
# apt-dater/manifests/server.pp
class apt-dater::server {
file { "/somepath/apt-dater/hosts.conf": }
concat::fragment{ "apt-dater_hosts_header":
content => "[All]\nHosts=",
order => 1,
}
Apt-dater::Client <<| |>>
}
# apt-dater/manifests/defines/register.pp
define apt-dater::register($order=10) {
concat::fragment{ "apt-dater_hosts_$name":
target => "/somepath/apt-dater/hosts.conf",
content => "apt-dater@${name};",
}
}
# apt-dater/manifests/client.pp
class apt-dater::client {
@apt-dater::register{ "$hostname": }
}
Em seguida, configure os nós:
# On the central server.
include apt-dater::server
# On each of the client nodes.
include apt-dater::client