Knife SSH tidak menemukan simpul saya

12

knife sshtidak menemukan simpul saya. Saya tahu itu harus bisa karena ketika saya bisa mencari mereka, saya menemukannya

# knife search node name:*
2 items found

Node Name:   web_01
...

Node Name:   admin
...

Namun, ketika saya menjalankan knife ssh(saya akan menunjukkannya dengan bendera 'debug') saya dapatkan

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

(ya tuan rumah sudah benar, saya hanya menyensornya untuk posting).

Saya sudah mencoba mengubah parameter QUERY dan selalu mendapatkan hasil yang sama. Saya sudah mencoba:

  • simpul: *
  • wewenang:*
  • *
  • *: *

Ada ide?

Maks
sumber

Jawaban:

16

Saya menemukan jawabannya. simpul saya tidak memiliki fqdn. Saya harus menentukan -a ipaddress. pesan kesalahan tidak membantu. Saya menemukan jawabannya dengan men-debug kode ssh. ada juga bug yang tidak membaca atribut dari file config knife. Saya akan membuka tiket tentang masalah ini dan mungkin mengirimkan tambalan.

Apa yang saya lakukan untuk melewati ini adalah meletakkan hostname dari node chef di file / etc / hosts saya dengan sebuah pointer ke alamat IP. Sebagai contoh:

10.3.3.100 chef-client.int

Anda bisa, tentu saja, selalu memasukkannya ke server DNS juga, bersama dengan sisa node Anda. Itu benar-benar akan menyelesaikan masalah.

Maks
sumber
7
Untuk mengklarifikasi bagi pembaca lain, " -a ipaddress" adalah literal. Tampaknya memberitahu knife sshuntuk terhubung dengan IP bukan FQDN. Perilaku ini bodoh - seharusnya mundur dengan cara ini secara default.
Steve Bennett
@SteveBennett Saya setuju bahwa itu harus menjadi perilaku default. Saya melihat bagaimana posting saya dapat membingungkan. Terima kasih telah mengklarifikasi.
Maks
4

Juga, jika -a ipaddresstidak berhasil, coba-a cloud.public_ipv4

Saya ditunjukkan solusi ini setelah mencari tahu yang knife sshmencoba menggunakan alamat IP internal untuk node saya dan butuh beberapa bertanya di saluran koki IRC (#chef di irc.freenode.net) sebelum seseorang bernama Retrh menunjukkan kepada saya ini .

jLi
sumber
luar biasa, terima kasih! @semua jika Anda menjalankan EC2, dan instans Anda telah dibuat dengan IP publik, tetapi nama host diarahkan ke IP lokal, gunakan yang berikut ini:knife ssh 'name:mydc1*' interactive -a node.node_name
Ilja
0

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

Ingat bahwa knife sshpada dasarnya memang a knife search node, jadi kueri Anda harus yang berfungsi knife search node(yaitu, knife search node "node:*"tidak berfungsi). knife ssh "role:*"seharusnya juga berfungsi, tetapi hanya jika node Anda memiliki peran yang ditugaskan padanya. Dalam hal ini, sumber asli Anda knife search node "name:*"juga akan berfungsi setelah Anda menggunakan kembali kueri untuk knife ssh. Jadi, knife ssh "name:*" "uptime".

cjc
sumber
1
Terima kasih atas jawabannya, tapi saya yakin "Tidak ada node" untuk id: * dan nama: *
Max
OK, itu aneh (yaitu, itu bekerja untuk saya). Saya kadang-kadang harus menendang chef-solr untuk mendapatkan objek baru muncul dalam pencarian, tetapi, jika Anda mendapatkan hasil dari "simpul pencarian pisau", Anda harus mendapatkan daftar simpul yang sama dengan yang digunakan oleh "pisau ssh" . Saya tidak tahu ke mana harus mencari berikutnya jika daftar hasil berbeda.
cjc
0

Pernahkah kamu mencoba knife ssh "name:*" "uptime"?

Saya menggunakan chef 10.x dan bekerja untuk saya.

Menurut pendapat saya, saat menggunakan knife search [INDEX] [QUERY], parameter pertama INDEXdigunakan untuk menentukan jenis item yang akan ditanyakan. Saat menggunakan knife sshperintah, ia tahu bahwa Anda mencoba untuk mencari node, jadi yang harus Anda lakukan adalah menentukan [QUERY]bagian, yang ada name:*dalam kasus Anda.

ley
sumber
Saya pikir jawaban @cjc artinya sama.
ley
0

Saya memecahkan ini dengan menggunakan ssh / config dan menghubungkan dengan fqdn.

h4ck3rm1k3
sumber