pg_client
という名前のクックブック レシピのロールを持つノードの IP アドレスにアクセスする必要がありますhc-pg
。role[pg_client]
テスト目的で、ランリストにとの両方を持つ単一のノードを使用していますrecipe[hc-pg]
。hc-pg
role でノードを検索しようとするレシピがあります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"
}
vagrant ドライバーでテスト キッチンを使用しています。以下は .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 ノードが返されます。同じノードが 2 回目に収束されると、pg_client
役割を持つノードが取得されます。したがって、私の仮定では、新たに実行すると、シェフがノードを収束するまでロールは適用されません。これは有効な仮定ですか?ロールを使用してノードにアクセスするにはどうすればよいですか?