Tidak dapat mencari peran simpul dalam resep buku masak koki

Saya harus mengakses alamat ip sebuah node dengan peran pg_client dalam resep buku masak bernama hc-pg. Untuk tujuan pengujian saya menggunakan satu node yang memiliki role[pg_client] dan recipe[hc-pg] di runlist. hc-pg memiliki resep yang mencoba mencari pada node dengan peran pg_client. Berikut kode resepnya:

ruby_block "searchnode" do
  block do
   pg_client_nodes = search(:node , "chef_environment:#{node.chef_environment} AND role:pg_client")
  end
end

Berikut ini adalah file pg_client.json

{
"name" : "pg_client",
"description" : "Client which connects to postgres server"
}

Saya menggunakan dapur uji dengan driver gelandangan dan berikut ini adalah .kitchen.yml

---
driver:
  name: vagrant

provisioner:
  name: chef_zero

platforms:
  - name: precise64
    driver:
     box: precise64-chef

suites:
  - name: default
    roles_path: ../../roles
    run_list:
      - role[pg_client]
      - recipe[hc-pg]
    attributes:
     postgresql:
      config:
       listen_addresses: "*"

Saya telah menyebutkan peran sebelum resep dalam daftar run. Saat saya menyatukan node untuk pertama kalinya, pencarian di pg_client menghasilkan 0 node. Ketika node yang sama dikonvergensi untuk kedua kalinya, saya mendapatkan node dengan peran pg_client. Jadi asumsi saya adalah bahwa dalam proses baru, peran tersebut tidak diterapkan sampai chef menyatukan simpulnya. Apakah ini asumsi yang valid? Lalu bagaimana cara mengakses node dengan peran?


person Vaibhav    schedule 05.03.2014    source sumber
comment
Peran tidak diterapkan hingga setelah proses Chef pertama berhasil   -  person sethvargo    schedule 05.03.2014
comment
Apakah pendekatan saya valid? Saya ingin menggunakan peran dalam chef run. Kasus penggunaan saya adalah untuk mendapatkan alamat ip dari sebuah node dengan peran pg_client. Ini bisa berupa node yang sama yang sedang disediakan.   -  person Vaibhav    schedule 06.03.2014
comment
Saya tidak tahu apa yang Anda maksud. Anda tidak dapat mencari peran yang diterapkan sampai peran tersebut diterapkan.   -  person sethvargo    schedule 06.03.2014
comment
Idealnya akan ada dua node, masing-masing untuk pg_client dan hc-pg. Dan saya akan menyediakan node satu demi satu. Tapi untuk tujuan pengujian saya ingin menugaskannya ke satu node dan menguji resep saya.   -  person Vaibhav    schedule 07.03.2014


Jawaban (1)


Umumnya node tidak dikembalikan dalam permintaan pencarian sampai setelah dijalankan pertama kali sehingga mungkin tidak mungkin.

Agar 100% yakin, Anda juga dapat mencoba menggunakan kata kunci peran (jamak, bukan tunggal) dalam kueri penelusuran:

search(:node , "chef_environment:#{node.chef_environment} AND roles:pg_client")
person makhan    schedule 06.03.2014