マスターとスレーブのpostgresqlサーバーをセットアップしました。dbmaster サーバーを表示するには、dbslave サーバーが必要です。だから私はノード内にpg_hba.conf
ルビー変数名を持っています。private_ip
テンプレートpg_hba.conf
は次のようになります。
<% node["postgresql"]["pg_hba"].each do |hba| %>
<%= hba['type'] %> <%= hba['db'] %> <%= hba['user'] %> <%= hba['addr'] %> <%= hba['method'] %>
<% end %>
そしてレシピではこんな感じ。ノードへの各ハッシュの値を取得します。
slave.rb
レシピ:
# hba
node.override["postgresql"]["pg_hba"] = [ { "type" => "host", "db" => "all", "user" =>"all", "addr" => "<%= private_ip %>", "method" => "trust"}
IP アドレスを取得するには、検索メソッドを使用します。
dbserver = search(:node, "role:pg_server_master")
private_ip = "#{dbserver[0][:private_ip]}"
puts private_ip
ここでの問題は、検索結果の値を node.override 変数にどのように入れることができるかということです<%= private_ip =>
。
何かアイデアはありますか?