Couteau SSH ne trouve pas mes nœuds


12

knife sshne trouve pas mes nœuds. Je sais que ça devrait pouvoir parce que quand je peux les chercher je les trouve

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

Cependant, lorsque je lance knife ssh(je vais le montrer avec le drapeau de «débogage»), je reçois

# knife ssh "node:*" "uptime" -VV
DEBUG: Using configuration from /root/.chef/knife.rb
DEBUG: Signing the request as dev
DEBUG: Sending HTTP Request via GET to ec2-xx-xx-xx-xx.compute-1.amazonaws.com:4000/search/node
FATAL: No nodes returned from search!

(oui l'hôte est correct, je l'ai juste censuré pour le post).

J'ai essayé de modifier le paramètre QUERY et j'obtiens toujours les mêmes résultats. J'ai essayé:

  • nœud:*
  • rôle:*
  • *
  • *: *

Des idées?

Réponses:


16

Je l'ai compris. mes nœuds n'avaient pas de fqdn. Je devais préciser -a ipaddress. le message d'erreur n'était pas utile. Je l'ai compris en déboguant le code ssh du couteau. il y a aussi un bogue qui ne lit pas l'attribut du fichier de configuration du couteau. Je vais ouvrir un ticket sur le problème et peut-être soumettre un patch.

Ce que j'ai fait pour surmonter cela a été de mettre le nom d'hôte du nœud chef dans mon fichier / etc / hosts avec un pointeur sur l'adresse IP. Par exemple:

10.3.3.100 chef-client.int

Bien sûr, vous pouvez toujours le mettre dans un serveur DNS, avec le reste de vos nœuds. Cela résoudrait complètement le problème.


7
Pour clarifier pour les autres lecteurs, " -a ipaddress" est littéral. Il indique apparemment knife sshde se connecter par IP et non par FQDN. Ce comportement est stupide - il devrait se replier de cette façon par défaut.
Steve Bennett

@SteveBennett Je suis d'accord que ce devrait être un comportement par défaut. Je vois à quel point mon message peut être déroutant. Merci de clarifier.
Max

4

De plus, si -a ipaddresscela ne fonctionne pas, essayez-a cloud.public_ipv4

On m'a montré cette solution après avoir compris que knife sshj'essayais d'utiliser des adresses IP internes pour mes nœuds et il a fallu demander au canal IRC du chef (#chef sur irc.freenode.net) avant que quelqu'un nommé retr0h ne me le montre .


incroyable, merci! @all si vous exécutez ec2 et que vos instances ont été créées avec une adresse IP publique, mais que le nom d'hôte est pointé vers une adresse locale, utilisez ce qui suit:knife ssh 'name:mydc1*' interactive -a node.node_name
Ilja

0

Essayez knife ssh "id:*" "uptime".

N'oubliez pas que cela fait knife sshessentiellement un knife search node, donc votre requête doit être celle qui fonctionne knife search node(c'est-à-dire, knife search node "node:*"ne fonctionne pas). knife ssh "role:*"devrait également fonctionner, mais uniquement si vos nœuds ont des rôles qui leur sont attribués. Pour cette question, votre original knife search node "name:*"devrait également fonctionner une fois que vous réutilisez la requête knife ssh. Ainsi, knife ssh "name:*" "uptime".


1
Merci pour la réponse, mais je parie "Pas de nœuds" pour l'identifiant: * et le nom: *
Max

OK, c'est bizarre (c'est à dire que ça marche pour moi). J'ai parfois dû donner un coup de pied à chef-solr pour que de nouveaux objets apparaissent dans la recherche, mais, si vous obtenez des résultats à partir du "nœud de recherche de couteau", vous devriez obtenir la même liste de nœuds utilisée par "couteau ssh" . Je ne sais pas où chercher ensuite si la liste des résultats est différente.
cjc

0

Avez-vous déjà essayé knife ssh "name:*" "uptime"?

J'utilise chef 10.x et cela fonctionne pour moi.

À mon avis, lors de l'utilisation knife search [INDEX] [QUERY], le premier paramètre INDEXest utilisé pour spécifier le type de l'élément à interroger. Tout en utilisant la knife sshcommande, il sait que vous essayez de rechercher des nœuds, donc tout ce que vous avez à faire est de spécifier la [QUERY]pièce, ce qui est name:*dans votre cas.


Je pense que la réponse de @cjc signifie la même chose.
ley

0

J'ai résolu cela en utilisant ssh / config et en me connectant par le fqdn.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.