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?
pg_client
. Ini bisa berupa node yang sama yang sedang disediakan. - person Vaibhav   schedule 06.03.2014pg_client
danhc-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