J'ai quelques centaines de serveurs uniques qui ont différents fichiers de configuration qui doivent être présents dans un répertoire. Des copies des fichiers résident sur le maître de marionnettes.
Dans l'une de mes classes, j'ai un ensemble de configurations par défaut qui sont toujours poussées vers le nœud, comme ceci:
file { "/etc/someprogram/config/000-default":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/000-default",
}
Ce que j'aimerais avoir, c'est quelque chose comme ceci:
$filearray = directory listing of /etc/puppet/modules/someprogram/files/$fqdn
with each file as an element into array
$filearray.each(
file { "/etc/someprogram/config/$filename":
ensure => "present",
owner => "root",
group => "root",
mode => 0764,
source => "puppet:///modules/someprogram/files/$fqdn/$filename",
}
)
Je ne connais pas très bien la marionnette mais j'ai l'impression qu'il n'y a pas moyen de le faire.
recurse => true
sur lefile
type), au lieu de déclarer chaque fichier comme une ressource distincte?Réponses:
Vous pouvez faire ce que vous essayez avec ceci:
Cela copiera tous les fichiers de $ fqdn dans / etc / someprogram / config, écrasant s'ils existent déjà.
la source
recurse => remote
si le répertoire en question aura des fichiers locaux qui ne sont pas poussés par le serveur de marionnettes.Si vous souhaitez définir plusieurs fichiers dans un répertoire sans récurer tout le répertoire, vous pouvez utiliser un tableau - comme ceci:
Bien sûr, avec de longs chemins vers "/ mon / dir" ou beaucoup de fichiers, cela deviendrait un peu lourd, donc dans ce cas, vous feriez mieux de créer une définition qui inclurait le chemin du répertoire, et de simplement passer le tableau de les noms de fichiers.
la source
alias
ensemble sur le fichier: /$name
ici. Cela ne fonctionne que si c'est un type défini.Voici un exemple de la façon dont je fais cela:
Dans l'exemple ci-dessus, j'affecte le planificateur d'E / S d'échéance à chacun des disques d'un serveur donné via Puppet.
la source