回答
如果您需要在Chef過程中嚴格執行env var集合,您可以使用ENV['foo'] = 'bar
',因爲這是一個紅寶石進程。
如果您需要設置一個用於execute provider,廚師暴露的環境中的散列:
execute 'Bootstrap the database' do
cwd "#{app_dir}/current"
command "#{env_cmd} rake db:drop db:create db:schema:load RAILS_ENV=#{rails_env}"
environment 'HOME' => "/home/#{app_user}"
user app_user
action :run
not_if %[psql -U postgres -c "\\l" | grep #{db_name}]
end
如果你正在尋找設置一個持久的環境變量,那麼你可能需要有廚師編輯/etc/profile.d/chef.sh
,/etc/environment
,用戶的個人資料等。
能否請你解釋一下如何通過廚師永久設置一個環境變量 – Prats 2014-04-08 10:49:57
@Prats - 檢查'magic_shell'食譜 - http://community.opscode.com/cookbooks/magic_shell – 2014-05-08 18:13:40
如果您想將其設置在系統與廚師,結帳magic_shell cookbook。
magic_shell_environment 'RAILS_ENV' do
value 'production'
end
只是爲其他使用谷歌搜索的人提供的一個提示 - magic_shell_environment很棒,只有一個問題。任何使用系統(「/ new/process/to/call」)從ruby腳本調用的命令都不會從/etc/profile.d/*自動提取 – matt 2013-04-25 16:15:35
@matt您可以強制執行交互式登錄和/或者在Ruby腳本中找到'/ etc/profile'。 – sethvargo 2013-04-28 17:21:28
謝謝,@sethvargo。要更新一個環境變量,比如'$ PATH',我應該如何使用'magic_shell'食譜? – 2014-03-24 18:29:27
如果你想在/etc/environment
系統級設置,您可以因此直接按照下面的例子做不添加額外的配方(這增加了兩個ENV變量的Java):
sys_env_file = Chef::Util::FileEdit.new('/etc/environment')
{
'JAVA_HOME' => '/usr/lib/jvm/java-1.7.0-openjdk-amd64',
'LD_LIBRARY_PATH' => '/usr/lib/jvm/java-1.7.0-openjdk-amd64/lib'
}.each do |name, val|
sys_env_file.insert_line_if_no_match /^#{name}\=/, "#{name}=\"#{val}\""
sys_env_file.write_file
end
- 1. 廚師:設置環境變量
- 2. 如何覆蓋環境中的廚師食譜版本約束?
- 3. 如何使用廚師食譜迭代廚師角色屬性
- 4. 如何將廚師食譜/食譜應用於多個節點?
- 5. 廚師生成食譜
- 6. 廚師跳過食譜
- 7. 如何使用delayed_job設置廚師食譜來產生多個工人?
- 8. 在廚師食譜中使用搜索
- 9. 如何覆蓋廚師食譜中的變量?
- 10. 廚師環境是否遵循食譜依賴關係?
- 11. 不能覆蓋廚師環境下的食譜屬性
- 12. 如何重新命名廚師食譜?
- 13. 你如何模仿廚師食譜?
- 14. 廚師 - 如何在食譜中獲得食譜的路徑
- 15. 廚師廚房缺少食譜
- 16. 如何在廚師中使用env懶惰地設置環境變量?
- 17. 廚師獨奏,如何在其他食譜中使用普通食譜
- 18. 任何廚師食譜或Jboss EAP 6.3的食譜?
- 19. 廚師包裝食譜一次只應用內部食譜
- 20. 廚師:將環境變量設置爲屬性
- 21. 廚師 - ERROR:RuntimeError:請設置EDITOR環境變量
- 22. 傳遞變量廚師的食譜和同步
- 23. 廚師不會從食譜/食譜安裝
- 24. 廚師食譜 - 在ruby_block中設置節點屬性
- 25. 如何使用廚師食譜找到服務的版本?
- 26. 廚師客戶不以廚師客戶食譜開始RHEL 6.7
- 27. 什麼是廚師食譜索引?
- 28. 廚師再次運行食譜
- 29. 記錄在廚師的食譜
- 30. 廚師食譜FileEdit insert_line_after_match和insert_line_if_no_match
你想設置的環境變量的上下文是什麼? – 2011-07-12 02:31:29
你可以延長你的問題嗎?它似乎已被回答,除非您分享更多信息或給我們一些反饋。 – Till 2011-11-03 19:19:57