Bumping Postgres version on Vagrant + CentOS + Chef + postgresql cookbook

Today I was trying to bump the Postgres on my Vagrant to 9.4. The cookbook I’m using: https://supermarket.chef.io/cookbooks/postgresql.

Thing is that the cookbook defines a recipe yum_pgdg_postgresql. So to configure everything just add attributes, here’s example from my cookbook attributes default.rb file:

override['postgresql']['pgdg']['repo_rpm_url']['9.4']['centos']['6']['x86_64'] = 'http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm'
override['postgresql']['enable_pgdg_yum'] = true
override['postgresql']['version'] = "9.4"

First line is very important. Current version of cookbook postgresql provides up to 9.2 (source https://github.com/ngs/chef-postgresql/blob/master/attributes/default.rb#L200) version so we have to specify URL to fetch v9.4. As you can see it must specify all required data, postgresql version, os version and os technology used. All available versions for rpm are here http://yum.postgresql.org.

Second lines ensures that recipe yum_pgdg_postgresql will be included.

The last is obvious, version of postgresql to use.

Vagrant and NFS – problems?


Recently I heard that using NFS is much faster than default shared folders in the Vagrant with VirtualBox. After some research I started to upgrade my Vagrantfile. Here is snippet how to make you shared partition NFS type:

config.vm.synced_folder ".", "/my-project", type: "nfs"

And that’s all!


Yesterday I had a problem. When I tried to up the vagrant it failed. My recent changes (I changed the username on my OS X) broke something in the NFS configuration. Quick search and found the solution. Seems that I had wrong entries in the file /etc/exports. Here is bash fix:

sudo rm /etc/exports
sudo touch /etc/exports

After that all works like a charm 🙂

The machine started to work very fast. It should be set as a default sharing method…


PS. If you are working on the Windows, try a plugin https://github.com/winnfsd/vagrant-winnfsd


Cheers, Damian.