ฉันต้องเข้าถึงที่อยู่ IP ของโหนดที่มีบทบาท pg_client
ในสูตรอาหารตำราอาหารชื่อ hc-pg
เพื่อวัตถุประสงค์ในการทดสอบ ฉันใช้โหนดเดียวซึ่งมีทั้ง role[pg_client]
และ recipe[hc-pg]
ในรายการรัน hc-pg
มีสูตรที่พยายามค้นหาบนโหนดที่มีบทบาท pg_client
ต่อไปนี้เป็นรหัสสูตร:
ruby_block "searchnode" do
block do
pg_client_nodes = search(:node , "chef_environment:#{node.chef_environment} AND role:pg_client")
end
end
ต่อไปนี้เป็นไฟล์ pg_client.json
{
"name" : "pg_client",
"description" : "Client which connects to postgres server"
}
ฉันกำลังใช้ห้องครัวทดสอบกับคนขับเร่ร่อน และต่อไปนี้คือ .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: "*"
ฉันได้กล่าวถึงบทบาทก่อนสูตรในรายการรันแล้ว เมื่อฉันรวมโหนดเป็นครั้งแรก การค้นหาบน pg_client
จะส่งคืน 0 โหนด เมื่อโหนดเดียวกันถูกบรรจบกันเป็นครั้งที่สอง ฉันจะได้รับโหนดที่มีบทบาท pg_client
ดังนั้นสมมติฐานของฉันคือว่าในการดำเนินการใหม่ บทบาทจะไม่ถูกนำไปใช้จนกว่าเชฟจะมาบรรจบกันที่โหนด นี่เป็นสมมติฐานที่ถูกต้องหรือไม่? ฉันจะเข้าถึงโหนดด้วยบทบาทได้อย่างไร?
pg_client
อาจเป็นโหนดเดียวกันที่กำลังจัดเตรียมอยู่ - person Vaibhav   schedule 06.03.2014pg_client
และhc-pg
และฉันจะจัดเตรียมโหนดหนึ่งต่ออีกโหนดหนึ่ง แต่เพื่อวัตถุประสงค์ในการทดสอบ ฉันต้องการกำหนดให้โหนดเดียวและทดสอบสูตรอาหารของฉัน - person Vaibhav   schedule 07.03.2014