Search code examples
postgresqlchef-infrapostgresql-9.3rhel7

Chef PostgreSQL Cookbook Installs Wrong Version on RHEL 7


Running the latest version (6.1.1) of the postgresql Chef cookbook (https://supermarket.chef.io/cookbooks/postgresql) with

node.default['postgresql']['enable_pgdg_yum'] = 'true'
node.default['postgresql']['version'] = '9.3'

This installs postgresql in /var/lib/pgsql/9.3, but running

psql -V

returns

psql (PostgreSQL) 9.2.33

Solution

  • You have to overwrite more at least version, dir, client, contrib and server packages:

    node.default["postgresql"]["version"]             = "9.3"
    node.default["postgresql"]["dir"]                 = "/etc/postgresql/9.3/main"
    node.default["postgresql"]["client"]["packages"]  = ["postgresql-client-9.3", "libpq-dev"]
    node.default["postgresql"]["server"]["packages"]  = ["postgresql-9.3"]
    node.default["postgresql"]["contrib"]["packages"] = ["postgresql-contrib-9.3"
    

    It is just an example, I am not sure about package names, double check it. It is due to the way ruby evaluates strings.