2014-02-15 5 views
10

Ich habe eine Vagrant-Instanz erstellt und ich bekomme diesen Fehler jedes Mal, wenn ich versuche und tun psql im Terminal Wie würde es beheben. der Fehler ist wie es heißt:psql: FATAL: Rolle "Vagrant" existiert nicht

psql: FATAL: Rolle "Vagabund" existiert nicht

Ich dachte vagrant kümmert das? Das ist mein Vagabund-Datei:

Vagrant.require_plugin "vagrant-omnibus" 
Vagrant.require_plugin "vagrant-berkshelf" 

Vagrant.configure(2) do |config| 

    # Box config 
    config.vm.box = 'precise64' 
    config.vm.box_url = 'http://files.vagrantup.com/precise64.box' 

    # Plugin config 
    config.omnibus.chef_version = :latest 
    config.berkshelf.enabled = true 

    # Network config 
    config.vm.network :forwarded_port, guest: 3000, host: 3000 

    # Virtual config 
    config.vm.provider(:virtualbox) do |vb| 
    vb.customize [ 
     "modifyvm", :id, 
     "--memory", "1024", 
     "--cpus", "4" 
    ] 
    end 

    # Provisioner config 
    config.vm.provision :chef_solo do |chef| 
    chef.add_recipe 'apt' 
    chef.add_recipe 'postgresql::client' 
    chef.add_recipe 'postgresql::server' 
    chef.add_recipe 'build-essential' 
    chef.add_recipe 'rvm::system' 
    chef.add_recipe 'git' 
    chef.json = { 
     :postgresql => { 
     :version => '9.3' 
     }, 
     "postgresql" => { 
     "password" => { 
      "postgres" => "kshgfi3ret3hihjfbkivtbo3ity835" 
     } 
     }, 
     "database" => { 
     "create" => ["aisisplatform"] 
     }, 
     :git => { 
     :prefix => "/usr/local" 
     }, 
     :rvm => { 
     'rubies' => [ 'ruby-2.1.0' ], 
     'default_ruby' => 'ruby-2.1.0', 
     'vagrant' => { 
      :system_chef_solo => '/usr/bin/chef-solo' 
     } 
     }, 
    } 
    end 
end 

Antwort

14

Sie nicht vagrant Benutzer in Postgres haben, und wenn Sie psql laufen, versucht es als vagrant Benutzer (der gleiche Name wie OS-Benutzer) anmelden. Sie können so etwas wie versuchen:

psql -U postgres -h localhost 

als postgres Benutzer anmelden, mit Passwort in Ihrem Vagrantfile für postgresq Benutzer angegeben.

Dann haben Sie mehrere Möglichkeiten:

  • Export PGUSER und PGHOSTenvironment variables einstellen Benutzer und Host (psql ohne Parameter werden diese Werte verwenden). Sie können auch die Datei .pgpass verwenden, um die Kennworteingabe für jede Ausführung von psql zu vermeiden.

  • Ändern Vagrantfile vagrant Benutzer in Postgres mit Passwort

+4

erstellen Was ein Vagabund Benutzer in der Vagrantfile aussehen würde, zu schaffen? Ich habe versucht, "password" => {"vagrant" => "kshgfi3ret3hihjfbkivtbo3ity835"} '' einzugeben, aber es beschwert sich über kein Attribut "postgres". – mcabrams

+0

-Mine sieht wie folgt aus 'postgresql: { Version: "9.3", Passwort: {Postgres: "some_pass"}, database_name: "mobi_test" }' – Anna

Verwandte Themen