1

オペコードレシピからchef soloでpostgresql 9.3をインストールしようとしていますが、次のエラーが発生します:

Chef::Exceptions::Package: No version specified, and no candidate version available for postgresql93-devel 

これが attributes/default.rb の私のコードですが、9.1 をインストールするだけで、9.3-devel のパッケージが見つかりません。

default['postgresql']['version'] = '9.3'
default['postgresql']['client']['packages'] = ["postgresql#{node['postgresql']['version'].split('.').join}-devel"]
default['postgresql']['server']['packages'] = ["postgresql#{node['postgresql']['version'].split('.').join}-server"]
default['postgresql']['contrib']['packages'] = ["postgresql#{node['postgresql']['version'].split('.').join}-contrib"]
default['postgresql']['dir'] = "/var/lib/pgsql/#{node['postgresql']['version']}/data"
default['postgresql']['server']['service_name'] = "postgresql-#{node['postgresql']['version']}"

代わりにこのコードを使用して 9.2 をインストールすると成功しますが、minitest はバージョン 9.3 がインストールされていないと不平を言います。

default['postgresql']['version'] = '9.2'
default['postgresql']['enable_pgdg_apt'] = true
default['postgresql']['dir'] = "/etc/postgresql/9.2/main"
default['postgresql']['config']['data_directory'] = "/var/lib/postgresql/9.2/main"
default['postgresql']['config']['hba_file'] = "/etc/postgresql/9.2/main/pg_hba.conf"
default['postgresql']['config']['ident_file'] = "/etc/postgresql/9.2/main/pg_ident.conf"
default['postgresql']['config']['external_pid_file'] = "/var/run/postgresql/9.2-main.pid"
default['postgresql']['config']['ssl_key_file']  = "/etc/ssl/private/ssl-cert-snakeoil.key"
default['postgresql']['config']['ssl_cert_file'] = "/etc/ssl/certs/ssl-cert-snakeoil.pem"
default['postgresql']['client']['packages']  = ["postgresql-client-9.2"]
default['postgresql']['server']['packages']  = ["postgresql-9.2"]
default['postgresql']['contrib']['packages'] = ["postgresql-contrib-9.2"]

私は今、attributes/default.rbでこれを使用しています

default['postgresql']['password']['postgres'] = 'xxx'
default['sportdata-server']['database']['dbname'] = 'myapp_production'
default['postgresql']['pgdg']['release_apt_codename'] = 'precise'
default['postgresql']['version'] = '9.3'
default['postgresql']['config']['ssl']  = false
default['postgresql']['config']['listen_addresses']  = '*'
4

3 に答える 3

6

CentOSでこれをやり終えたばかりですが、Ubuntuで試したことはありません。私はいくつかのことに気づきます:

  1. 9.3 の pgdg リポジトリを有効にしませんでした
  2. 無効なパッケージ名を指定しています。クックブックのデフォルトで十分だと思います。

これを試して

default['postgresql']['version'] = '9.3'
default['postgresql']['enable_pgdg_apt'] = true

また、VM に既定の postgresql バージョンが既にインストールされていないことを確認する必要がある場合もあります。CentOSでそれに遭遇しました。

于 2014-04-22T16:48:18.883 に答える
0

私はついにopscode postgresqlクックブックを放棄し、これに行きました:

属性/デフォルト.rb

default ['lsb']['codename'] = 'trusty'
default['postgresql']['version'] = '9.3'

私のpostgresql-serverレシピでは:

file "remove deprecated Pitti PPA apt repository" do
  action :delete
  path "/etc/apt/sources.list.d/pitti-postgresql-ppa"
end

bash "adding postgresql repo" do
  user "root"
  code <<-EOC
  echo "deb http://apt.postgresql.org/pub/repos/apt/ #{node['lsb']['codename']}-pgdg main" > /etc/apt/sources.list.d/pgdg.list
  wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
  EOC
  action :run
end

execute "run apt-get update" do
  command 'apt-get update'
  action :run
end

packages = %w(
  libpq-dev
  git-core 
  curl 
  zlib1g-dev
  libssl-dev 
  libreadline-dev 
  libyaml-dev 
  libsqlite3-dev 
  sqlite3 
  libxml2-dev 
  libxslt1-dev
  postgresql-contrib
)

packages.each { |name| package name }

package "postgresql-#{node['postgresql']['version']}"
于 2014-04-21T11:12:02.043 に答える