Bıçak SSH düğümlerimi bulamıyor


12

knife sshdüğümlerimi bulamıyor. Yapabilmesi gerektiğini biliyorum çünkü onları arayabildiğimde onları buluyorum

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

Ancak, koştuğumda knife ssh('hata ayıklama' bayrağıyla göstereceğim)

# 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!

(Evet ana doğru, ben sadece yazı için sansür).

QUERY parametresini değiştirmeyi denedim ve her zaman aynı sonuçları aldım. Denedim:

  • Düğüm: *
  • rolü: *
  • *
  • *: *

Herhangi bir fikir?

Yanıtlar:


16

Bunu anladım. düğümlerimde fqdn yoktu. Belirtmek zorundaydım -a ipaddress. hata mesajı yardımcı olmadı. Bıçak ssh kodunda hata ayıklayarak anladım. bıçak yapılandırma dosyasından özniteliği okumadığına dair bir hata da var. Bu konuda bir bilet açacağım ve belki bir yama göndereceğim.

Bu geçmiş olsun için ne yaptım IP düğümüne bir işaretçi ile benim / etc / hosts dosyasında şef düğümünün hostname koymak oldu. Örneğin:

10.3.3.100 chef-client.int

Elbette, her zaman düğümlerinizin yanı sıra bir DNS sunucusuna da koyabilirsiniz. Bu sorunu tamamen çözecektir.


7
Diğer okuyuculara açıklık getirmek için " -a ipaddress" harfi harfine değişmektedir. Görünüşe göre knife sshFQDN değil IP ile bağlanmayı söylüyor . Bu davranış aptal - varsayılan olarak bu şekilde geri dönmelidir.
Steve Bennett

@SteveBennett Varsayılan davranış olması gerektiğine katılıyorum. Gönderinin nasıl kafa karıştırıcı olabileceğini görüyorum. Açıkladığınız için teşekkürler.
Max

4

Ayrıca, -a ipaddressişe yaramazsa,-a cloud.public_ipv4

knife sshDüğümlerim için dahili IP adresleri kullanmaya çalıştığını anladıktan sonra bu çözümü gösterdim ve retr0h adlı biri bana bunu göstermeden önce şef IRC kanalında (#cf.reenc.net üzerinde #chef) sormak biraz zaman aldı .


harika, teşekkürler! @all ec2 çalıştırıyorsanız ve örnekleriniz genel IP ile oluşturulmuş ancak ana makine adı yerel olana işaretlenmişse, aşağıdakileri kullanın:knife ssh 'name:mydc1*' interactive -a node.node_name
Ilja

0

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

Bunun knife sshtemel olarak bir olduğunu unutmayın knife search node, bu nedenle sorgunuz üzerinde çalışan knife search node(yani knife search node "node:*"çalışmayan) bir sorgu olmalıdır . knife ssh "role:*"ancak düğümlerinizde kendilerine atanan roller varsa çalışmalıdır. Bu nedenle knife search node "name:*", sorguyu yeniden tasarladıktan sonra orijinalinizin de çalışması gerekir knife ssh. Yani knife ssh "name:*" "uptime",.


1
Cevabınız için teşekkürler, ancak hem id: * hem de name için "No noodes" bahsi
Max

Tamam, bu tuhaf (yani benim için çalışıyor). Ara sıra yeni nesneler bulmak için şef-solr tekmelemek zorunda kaldım, ancak, "bıçak arama düğümünden" sonuçlar alıyorsanız, "bıçak ssh" tarafından kullanılan aynı düğüm listesini almanız gerekir . Sonuçlar listesi farklıysa, nereye bakacağımı bilmiyorum.
cjc

0

Hiç denedin knife ssh "name:*" "uptime"mi?

Şef 10.x kullanıyorum ve benim için çalışıyor.

Kanımca, kullanıldığında knife search [INDEX] [QUERY], INDEXsorgulanacak öğenin türünü belirtmek için ilk parametre kullanılır. knife sshKomutu kullanırken , düğümleri aramaya çalıştığınızı bilir, bu yüzden yapmanız gereken tek şey sizin durumunuz [QUERY]olan parçayı belirtmektir name:*.


@Cjc'nin cevabının aynı anlama geldiğini düşünüyorum.
ley

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.