【发布时间】:2013-12-01 06:14:20
【问题描述】:
我决定创建自己的厨师脚本来安装 Postgres。安装工作正常,但是当我vagrant reload 时,postgres 没有在启动时启动
这是我的食谱/default.rb:
include_recipe "apt"
apt_repository 'apt.postgresql.org' do
uri 'http://apt.postgresql.org/pub/repos/apt'
distribution node["lsb"]["codename"] + '-pgdg'
components ['main', node["postgres"]["version"]]
key 'http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc'
action :add
end
package 'postgresql-' + node["postgres"]["version"] do
action :install
end
file "/etc/postgresql/#{node['postgres']['version']}/main/postgresql.conf" do
action :delete
end
link "/etc/postgresql/#{node['postgres']['version']}/main/postgresql.conf" do
to node["postgres"]["conf_path"]
action :create
notifies :reload, "service[postgresql]", :delayed
end
service "postgresql" do
action [:enable, :start]
supports :status=>true, :restart=>true, :start => true, :stop => true, :reload=>true
end
这是我的属性/default.rb:
default["postgres"]["version"] = "9.3"
default["postgres"]["conf_path"] = "/home/vagrant/postgres/postgresql.conf"
任何帮助将不胜感激!
============ 编辑 1 ============
这是第一次使用chef.log_level = :debug 运行vagrant up 时的输出:http://pastebin.com/w8Lp8gzv
这里是/etc/init.d/postgresql:http://pastebin.com/dQ5Zb1yj
这里是/var/log/postgresql/postgresql-9.3-main.log:http://pastebin.com/0Y2RhWvL
============ 编辑 2 ============
我现在相当有信心这是我的 postgresql.conf 文件,它看起来像:http://pastebin.com/rjX89iU0
shared_buffers 可能太高了...
【问题讨论】:
-
请指定操作系统。如果可能,请指向 basebox 的 URL。将
chef.log_level = :debug添加到Vagrantfile可能会为问题提供更多线索。 -
另外,在重新加载 Vagrant VM 后,您可以通过
service postgresql start手动启动 postgresql 吗? -
我正在使用
config.vm.box_url = "http://files.vagrantup.com/precise64.box" -
我可以通过运行
service postgresql start手动启动 Postgres -
很奇怪。我使用您提供的代码和框重新创建了您的场景。 Postgres 安装后可以正常启动,但如果我发出
service postgresql start重新加载,则会引发此错误:* No PostgreSQL clusters exist; see "man pg_createcluster"并且无法启动。
标签: postgresql chef-infra vagrant upstart init.d