knife ssh
No está encontrando mis nodos. Sé que debería poder hacerlo porque cuando puedo buscarlos los encuentro
# knife search node name:*
2 items found
Node Name: web_01
...
Node Name: admin
...
Sin embargo, cuando ejecuto knife ssh
(lo mostraré con el indicador de 'depuración') me sale
# 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!
(Sí, el host es correcto, solo lo censuré para la publicación).
Intenté modificar el parámetro QUERY y siempre obtengo los mismos resultados. He intentado:
- nodo:*
- papel:*
- * *
- *: *
¿Algunas ideas?
-a ipaddress
" es literal. Aparentemente le diceknife ssh
que se conecte por IP, no por FQDN. Este comportamiento es tonto: debería retroceder de esta manera de forma predeterminada.Además, si
-a ipaddress
no funciona, intente-a cloud.public_ipv4
Me mostraron esta solución después de descubrir que
knife ssh
estaba tratando de usar direcciones IP internas para mis nodos y me tomó algunas preguntas en el canal del chef IRC (#chef en irc.freenode.net) antes de que alguien llamado retr0h me mostrara esto .fuente
knife ssh 'name:mydc1*' interactive -a node.node_name
Tratar
knife ssh "id:*" "uptime"
.Recuerde que
knife ssh
esencialmente hace unknife search node
, por lo que su consulta debe ser una que funcioneknife search node
(es decir,knife search node "node:*"
no funciona).knife ssh "role:*"
También debería funcionar, pero solo si sus nodos tienen roles asignados. Para el caso, su originalknife search node "name:*"
también debería funcionar una vez que reutilice la consultaknife ssh
. Por lo tanto,knife ssh "name:*" "uptime"
.fuente
¿Alguna vez lo has intentado
knife ssh "name:*" "uptime"
?Estoy usando el chef 10.x y funciona para mí.
En mi opinión, cuando se usa
knife search [INDEX] [QUERY]
, el primer parámetroINDEX
se usa para especificar el tipo de elemento a consultar. Mientras usa elknife ssh
comando, sabe que está intentando buscar nodos, por lo que todo lo que tiene que hacer es especificar la[QUERY]
parte, que esname:*
en su caso.fuente
Resolví esto usando ssh / config y conectando por el fqdn.
fuente