我正在使用application_python v4.0食谱,大部分成功, 但是在local_settings一代中遇到了一些麻烦。
基本上,我想更改settings.py.erb的内容 正在使用中。
这是食谱的berkshelf来源地点:
.berkshelf /食谱/ application_python-4.0.0 /模板/ settings.py.erb
我在自己的食谱上添加了一个修改过的settings.py.erb,但确实如此 没有被拿起,默认的.berkshelf文件总是存在 使用
myrepo /食谱/ basedjango /模板/ settings.py.erb
然后我读了一下local_settings属性并认为我会 修改它以指向重命名的文件,而不是settings2.py.erb。最初,我的想法只是跟踪它将要搜索的模板目录。但是从未设法修改local_settings。
这些是我尝试的各种调整,导致错误 大多数情况。
# local_settings 'foo' do
# source 'settings2.py.erb'
# end
# resulting error => undefined method `local_settings' for PoiseApplicationPython::Resources::Django::Resource
# local_settings do
# source 'settings2.py.erb'
# end
# resulting error => undefined method `local_settings' for PoiseApplicationPython::Resources::Django::Resource
# local_settings 'settings2.py.erb'
# undefined method `local_settings' for PoiseApplicationPython::Resources::Django::Resource
# file 'local_settings' do
# source 'settings2.py.erb'
# end
问题:为什么我自己的食谱模板没有被拿起和使用,而不是berkshelf版本?适用于其他烹饪书,而非此处。 如果做不到这一点,我该如何调整local_settings?
Chef Development Kit版本:0.7.0 chef-client版本:12.4.1 berks版本:3.2.4 厨房版:1.4.2
主持人mac osx guest ubuntu 14.04
答案 0 :(得分:2)
正确的语法如下:
application "/var/www/myproj" do
application_git do
deploy_key repo_key
repository repo_url
revision repo_rev
end
virtualenv do
path "/var/www/myproj/ve"
end
pip_requirements "/var/www/myproj/requirements/cpython2.txt"
django do
database "postgres://#{dbuser}:#{dbpassword}@#{dbserver}/#{dbname}"
secret_key django_secret_key
local_settings_source 'host_settings.py.erb'
local_settings_options setting1: my_secret_1, setting2: my_secret_2
local_settings_path "/var/www/myproj/settings/host_settings.py"
migrate true
end
end
应创建名为“host_settings.py.erb”的模板(在本例中),如下所示:
DEBUG = <%= PoisePython::Utils.to_python(@debug) %>
<%- unless @allowed_hosts.empty? -%>
ALLOWED_HOSTS = <%= PoisePython::Utils.to_python(@allowed_hosts) %>
<%- end -%>
# database connection information
DATABASES = <%= PoisePython::Utils.to_python(@databases) %>
# Django secret key
<%- if @secret_key -%>
SECRET_KEY = <%= PoisePython::Utils.to_python(@secret_key) %>
<%- end -%>
<%- if ! @setting1.to_s == '' -%>
# Setting #1
SECRET_1 = '<%= PoisePython::Utils.to_python(@setting1) %>'
<%- end -%>
<%- if ! @setting2.to_s == '' -%>
# Setting #2
SECRET_2 = '<%= PoisePython::Utils.to_python(@setting2) %>'
<%- end -%>