2013-05-15 2 views
1

У меня есть настройка сервера master и slave postgresql. Мне нужен мой сервер dbslave для просмотра моего сервера dbmaster. Итак, в моем pg_hba.conf у меня есть имя переменной ruby ​​private_ip внутри узла.Разбор IP ADDR в атрибуте, который будет использоваться в конфигурации

Шаблон 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 =>.

Любые идеи, пожалуйста?

ответ

1

Я использовал метод поиска от шеф-повара:

# getting the private ip for pg_hba.conf 
    dbserver = search(:node, "role:oftheserver") 
    private_ip = dbserver[0]['ipaddress'] 
    mask = @ipaddress.to_s + "/32" 

Так вывод этого поиска будет xxxx/32 в моем c аза.

0

Проходят необходимые переменные в шаблоне:

template "/etc/whatever/pg_hba.conf" do 
    source "pg_hba.conf.erb" 
    mode 0644 
    owner "root" 
    group "root" 
    variables({ 
    :private_ip => private_ip 
    }) 
end 

, а затем использовать его в шаблоне:

<%= @private_ip => 
+0

Im мой рецепт я использовал метод поиска от шеф-повара. Как и ниже: – colido

Смежные вопросы