2017-07-14 111 views
0

我有3配方廚師:恢復默認值配方

  1. my_java
  2. my_db_client
  3. my_app應用(取決於my_db_client和my_java)

在程序my_app我已經

default.rb

default[:my_app][:user] = "#{node[:my_db_client][:user]}" 
default[:my_app][:group] = "#{node[:my_db_client][:group]}" 
default[:my_app][:user_home] = "#{node[:my_db_client][:user_home]}" 
default[:my_app][:base] = "#{node[:my_db_client][:base]}" 
default[:my_app][:oracle_client_home] = "#{node[:my_db_client][:oracle_home]}" 

在my_db_client我已經

default.rb

default[:my_db_client][:user] = "" --(Set from Role) 
default[:my_db_client][:group] = "" --(Set from Role) 
default[:my_db_client][:user_home] = "" --(Set from Role) 
default[:my_db_client][:base] = "" --(Set from Role) 
default[:my_db_client][:oracle_client_home] = "#{node[:my_db_client][:base]}/oracle/home" 

role1上

default_attributes( 
    :my_db_client => { 
     :user => "myuser", 
     :group => "mygroup", 
     :user_home => '/home', 
     :base => '/u01' 
    } 
) 
run_list( 
    "recipe[my_db_client]", 
    "recipe[my_app::_install]" 
) 

role2所

default_attributes( 
    :my_java => { 
     :user => "myuser", 
     :group => "mygroup", 
     :user_home => '/home', 
     :base => '/u01' 
    } 
) 
run_list(
    "recipe[my_java]", 
    "recipe[my_db_client]", 
    "recipe[my_app::_install]" 
) 

對於role1上的東西很好地工作。

但role2所默認my_db_client值設置爲 「」

[:my_db_client][:user] = "" 
  1. 如何從節點的值傳遞[:my_java] [:用戶]到 [:my_db_client] [:用戶]?
  2. 我該如何設置下面的值呢?

    default[:my_db_client][:oracle_client_home] = "#{node[:my_db_client][:base]}/oracle/home" 
    

回答

0

如果你想的node['my_db_client']['user']的默認值是node['my_java']['user']的值,那麼做,在屬性文件。不確定問題是什麼,因爲你已經在其他情況下完成了這個問題,所以你必須出於某種特定的原因離開它?

+0

在我的my_app中,default.rb值是從my_db_client節點設置的,但在role2中,我將數據捕獲到my_java節點中。現在我該如何將這些值從my_java節點設置到my_db_client節點中? –

+0

我不明白這個問題,如果這就是你想要做的,就去做吧。 – coderanger