Question Marionnette: Le nom du nœud semble dépendre du DNS inversé?


Il semble que je rencontre un petit problème pour comprendre comment faire fonctionner cela. J'ai un nouveau serveur que je construis assis derrière le NAT de bureau au travail, ses cartes DNS inversées à office.mydomain.com, mais je veux que la machine soit ns2.mydomain.com pour l'amour de la marionnette.

Noeuds.pp extrait:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits basenode {
  info('office.mydomain.com')
}

Et mon 'puppet.conf' sur le client:

[main]
#was node_name=ns2.mydomain.com
#was fqdn=ns2.mydomain.com
certname=ns2.mydomain.com
node_name=cert

Mon syslog sur le serveur rapporte:

Sep 16 22:59:12 support puppetmasterd[2800]: Host is missing hostname and/or domain: office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: (Scope(Node[office.mydomain.com])) office.mydomain.com
Sep 16 22:59:12 support puppetmasterd[2800]: Compiled catalog for office.mydomain.com in 0.03 seconds
Sep 16 22:59:12 support puppetmasterd[2800]: Caching catalog for ns2.mydomain.com

Comment puis-je le faire saisir la config pour ns2.mydomain.com sans faire quelque chose comme ça:

node 'ns2.mydomain.com' inherits basenode {
  info('ns2.mydomain.com')
}

node 'office.mydomain.com' inherits 'ns2.mydomain.com' {
  info('office.mydomain.com')
}

METTRE À JOUR: Ce problème semble causer d’autres problèmes également. Par exemple si je info("$fqdn") pendant que la machine est assise derrière office.mydomain.com le fait fqdn est vide, ainsi que le $operatingsystem. C'est presque comme si les faits n'étaient pas découverts correctement. Y at-il peut-être un problème de NAT? Y at-il des suggestions pour dépister cette cause de ce problème?


20
2017-09-17 03:03


origine




Réponses:


Aaah, détection du nom d'hôte de marionnette. Quel cauchemard...

Par défaut, quel nom sera utilisé pour trouver lequel node La définition à utiliser est basée sur le contenu du fait fqdn. Quoi cette En réalité, les mappes sur dépendent de différentes choses, et oui, le reverse DNS en fait partie - et il est préférable au nom d'hôte de la machine!

Cependant, ce nom (généralement) ne s'applique qu'au moment de la génération du certificat. Vous utilisez réellement le node_name variable - il devrait être réglé sur "cert" ou "facter". le fqdn Le paramètre est également obsolète.

Ce que vous réellement vouloir faire est de définir le certname paramètre du client sur le nom du noeud que vous souhaitez utiliser, puis définissez node_name à cert (ou laissez-le simplement de côté, puisque cert est la valeur par défaut). Cela prendra le nom du nœud du CN du certificat que le client présente, et le certname Ce paramètre permet de s’assurer qu’il est réglé sur quelque chose de raisonnable plutôt que ce que l’équipe décide de faire par elle-même. Malheureusement, comme vous avez déjà créé de "mauvais" certs, vous devrez les régénérer (rm -rf /var/lib/puppet/ssl sur le client et relancez Puppet) après avoir configuré la configuration, afin que les bons certificats soient créés et utilisés.

Si tout cela vous semble un peu compliqué, vous avez raison. Bienvenue à la marionnette.


26
2017-09-17 12:07



Hé là - donc regardant marionnettiste et marionnette - les deux ont node_name=cert, mis à jour cert_name=ns1.mydomain.com et facter fqdn résultats ns1.mydomain.com sur le client, mais je finis toujours avec les mêmes messages d'erreur à propos de office.mydomain.com. - gnarf
re: certname, vous avez raison, je me suis mal souvenu et je n'ai pas vérifié les documents comme je le devrais. En ce qui concerne le manque de fixation, vous devez régénérer le certificat client; J'ai mis à jour ma réponse pour couvrir cela. - womble♦
En fait, mon fichier de cert est ns1.mydomain.com.pem et son CN est également ns1 ... C'est "correct" non? office.mydomain.com est ce qu’elle utilise comme nom de noeud, et apparemment chaque fois qu’elle tente de saisir des faits lors de l’analyse, au lieu d’utiliser le nom du certificat comme nom de noeud. Peut-être que je manque quelque chose d'autre? Aucun de mes faits ne semble être transmis à l'analyseur syntaxique info($fqdn) montre simplement une ligne vide dans la portée que je mets dans. - gnarf
Je ne sais pas ce que vous avez fait, mais vous avez réussi à améliorer quelque chose de vraiment bon. Je pense que vous êtes seul. - womble♦
Autre mise à jour: j'ai réussi à obtenir toutes les informations "prédéfinies" de derrière le réseau local du bureau et à mettre le nouveau serveur de noms en direct - dès qu'il a commencé à utiliser le bon DNS inversé, tous les faits sont apparus correctement ... - gnarf


Je semble avoir de la chance (bien qu'il y ait encore quelques cas de test que je veux voir) en édition /etc/hosts pour répertorier le nom de domaine souhaité sous 127.0.0.1 en tant que première option. Il semble alors le détecter correctement / transmettre des faits. Bien qu’il semble que j’ai encore besoin de créer un noeud appelé office.mydomain.com qui hérite du noeud que je veux.


5
2017-09-18 21:17



Cela a fonctionné pour moi. (devait supprimer le répertoire ssl comme mentionné ci-dessus) - bwizzy
Cela a également bien fonctionné pour moi et est également pris en charge par la documentation de Puppet: puppetlabs.com/blog/resolving-dns-issues - DuffJ