2013-05-23 22 views
7

walczę aby uzyskać PostgreSQL 9.2 zainstalowany z Opscode postgresql cookbook na Vagrant VM (Ubuntu 12.04).Instalacja PostgreSQL 9.2 z Chef PostgreSQL

To jest mój przepis:

node.set['postgresql']['version']    = "9.2" 
node.set['postgresql']['enable_pgdg_apt']  = true 
node.set['postgresql']['password']   = {postgres: "pwd"} 
node.set['postgresql']['server']['packages'] = ["postgresql-9.2"] 

include_recipe "postgresql::apt_pgdg_postgresql" 
include_recipe "postgresql::server" 
include_recipe "database" 

Wyniki wyświetlane w następujących:

[2013-05-23T11:00:52+00:00] FATAL: Chef::Exceptions::EnclosingDirectoryDoesNotExist: 
template[/etc/postgresql/9.2/main/postgresql.conf] (postgresql::server line 60) had an error: 
Chef::Exceptions::EnclosingDirectoryDoesNotExist: Parent directory /etc/postgresql/9.2/main does not exist. 

Używam najnowszej wersji 3.0.0 książkę kucharską poostgresql.

Ponowne uruchamianie wszystko od nowa z czystym VM (włóczęga niszczą się, itp) daje ten błąd:

[2013-05-23T11:16:37+00:00] FATAL: Chef::Exceptions::EnclosingDirectoryDoesNotExist: 
template[/etc/postgresql/9.1/main/postgresql.conf] (postgresql::server line 60) had an error: 
Chef::Exceptions::EnclosingDirectoryDoesNotExist: Parent directory /etc/postgresql/9.1/main does not exist. 

Nagle nie ma nawet odpowiedniej wersji.

Odpowiedz

7

udało mi się rozwiązać ten problem przez ustawienie katalogu:

node.set['postgresql']['dir'] = "/var/lib/postgresql/9.2/main" 

Wygląda na to, jest to ten sam problem: http://tickets.opscode.com/browse/COOK-2113

+0

Dostaję '/var/lib/postgresql/9.2/main katalogu nadrzędnego nie exist.' błąd w Ubuntu 12.04 – sergserg

9

oto co ostatecznie ustalone to dla mnie:

  1. eksploatowany update-alternatives --remove postmaster.1.gz /usr/share/postgresql/9.1/man/man1/postmaster.1.gz

  2. Użyj współpracy nf poniżej.

Snip:

postgresql: { 
    enable_pgdg_apt: true, 
    dir: "/etc/postgresql/9.2/main", 
    config: { 
     data_directory: "/var/lib/postgresql/9.2/main", 
     hba_file: "/etc/postgresql/9.2/main/pg_hba.conf", 
     ident_file: "/etc/postgresql/9.2/main/pg_ident.conf", 
     external_pid_file: "/var/run/postgresql/9.2-main.pid", 
     ssl_key_file: "/etc/ssl/private/ssl-cert-snakeoil.key", 
     ssl_cert_file: "/etc/ssl/certs/ssl-cert-snakeoil.pem", 
    }, 
    client: { 
     packages: ["postgresql-client-9.2",], 
    }, 
    server: { 
     packages: ["postgresql-9.2", "postgresql-server-dev-9.2"], 
    }, 
    contrib: { 
     packages: ["postgresql-contrib-9.2"], 
    }, 
    password: { 
     postgres: 'postgres' 
    }, 
    pg_hba: [ 
     {type: 'local', db: 'all', user: 'all', addr: nil, method: 'trust'}, 
     {type: 'host', db: 'all', user: 'all', addr: '127.0.0.1/32', method: 'trust'}, 
     {type: 'host', db: 'all', user: 'all', addr: '::1/128', method: 'trust'} 
    ], 
    version: "9.2", 
}, 
+0

Dzięki za podzielenie się przykładu, pg_hba mnie dopadł i ten przykład naprawdę pomógł –