0
votes

Puppet - Déclaration en double pour Registry_Key

J'ai un fichier manifeste pour ajouter des clés de registre et des valeurs basées sur des faits (fonctionne bien). XXX

Je souhaite ajouter un deuxième fichier pour les supprimer si nécessaire mais je le fais Obtenez une erreur

"DÉCLARATION DUPLIQUE: REGTRY_KEY [HKLM \ Software \ Stratégies \ Microsoft \ Windows \ WindowsUpdate] est déjà déclarée"

Je ne sais pas comment se déplacer - si du tout ? Tout conseil apprécié. Évidemment, une marionnette novice ...

merci


0 commentaires

3 Réponses :


0
votes

Si vous voulez résoudre ce problème, vous utiliseriez probablement des faits personnalisés ou externes, quelque chose comme ceci: xxx

Comme vous l'avez découvert, déclarant la même ressource plus d'une fois mais avec différents Les attributs ne sont pas autorisés dans la marionnette.

Il y a plus d'informations sur les faits personnalisés ici dans les docs.


0 commentaires

0
votes

Dans la plupart des situations, la suggestion d'Alex est la façon dont je procéderais. Habituellement, le meilleur moyen, de la défaut en commun.YAML et de remplacement basé sur le nom du nœud ou un autre niveau de Hiera. Selon votre cas d'utilisation, une manière moins simple consiste à envelopper ces blocs d'une condition conditionnelle (si / si / sinon) où il est présent / absent en fonction d'un ensemble booléen dans Hiera. Quelque chose sur les lignes de à moins d'€ exclude_from_testkey ou un case


0 commentaires

0
votes

Vous avez des déclarations de ressources pour spécifier qu'une clé de registre donnée et une valeur doit être assurée sur le nœud cible. Si vous avez également des déclarations précisant que l'une ou les deux devait être absente, et la marionnette évalue les deux ensembles , alors que dis-tu réellement de la marionnette de faire? Il ne peut pas se conformer aux deux ensembles de déclarations.

Puppet prend une approche extrêmement prudente des situations comme celle-ci, ce qui a du sens compte tenu de son rôle dans la gestion des infrastructures. Dans le cas où la même ressource est déclarée plus d'une fois pour la même cible, l'abandon de la marionnette. Cela produit des difficultés pratiques de temps en temps, mais je suis convaincu que cela a protégé de nombreux systèmes de malfiguration.

La solution consiste à garantir que votre ensemble manifeste ne déclare qu'un ensemble de ces déclarations pour chaque nœud . Vous pourriez le faire en n'ayant qu'un seul ensemble, et de twiddling leur $ garantit des paramètres de manière dynamique, comme le suggère @Alexharevey. Vous pouvez également le faire en mettant les deux séries de déclarations dans différents blocs et en sélectionnant entre eux avec des déclarations conditionnelles. Ou vous pouvez les mettre dans des classes tout à fait différentes et être certain d'inclure une seule d'entre elles pour chaque noeud.

mais je dois différer avec Alex ici sur les spécificités. Je n'utiliserais pas généralement un fait personnalisé ici, car cela donne un contrôle sur quelle option est exercée au client. De manière générale, je veux le maître pour dicter les questions de la configuration de divers nœuds. À cette fin, il s'agit d'un idiome assez courant d'utiliser un paramètre de classe pour contrôler si les ressources sont assurées présentes ou absentes: xxx


0 commentaires