knife ssh
ne trouve pas mes nœuds. Je sais que cela devrait être capable de pouvoir parce que je peux les chercher, je les trouve
# knife search node name:*
2 items found
Node Name: web_01
...
Node Name: admin
...
Cependant, quand je courais knife ssh
(Je vais le montrer avec le drapeau "debug") 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 viens de le censurer pour le poste).
J'ai essayé de modifier le paramètre de requête et d'obtenir toujours les mêmes résultats. J'ai essayé:
Des idées?
Je l'ai compris. Mes nœuds n'avaient pas de FQDN. J'ai dû spécifier -a ipaddress
. Le message d'erreur n'a pas été utile. Je l'ai compris en débogage Couteau SSH Code SSH. Il existe également un bogue qu'il ne lit pas l'attribut du fichier de configuration du couteau. Je vais ouvrir un billet sur la question et peut-être soumettre un correctif.
Ce que j'ai fait pour passer, cela a été placé le nom d'hôte du nœud Chef dans mon fichier/etc/hosts avec un pointeur à l'adresse IP. Par example:
10.3.3.3.100 Chef-Client.int
Bien sûr, vous pouvez toujours la mettre dans un serveur DNS également, ainsi que le reste de vos nœuds. Cela résoudrait complètement le problème.
Essayer knife ssh "id:*" "uptime"
.
N'oubliez pas que knife ssh
fait essentiellement un knife search node
, votre requête doit donc être celle qui fonctionne sur 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. A ce sujet, votre original knife search node "name:*"
devrait également fonctionner une fois que vous avez réutilisé la requête pour knife ssh
. Alors, knife ssh "name:*" "uptime"
.