diff --git a/postgresql/defaults/main.yml b/postgresql/defaults/main.yml index 6828dca8..1c4e7238 100644 --- a/postgresql/defaults/main.yml +++ b/postgresql/defaults/main.yml @@ -7,3 +7,6 @@ postgresql_shared_buffers: 4GB postgresql_work_mem: 8MB postgresql_random_page_cost: 1.5 postgresql_effective_cache_size: 14GB + +# PostgreSQL version +postgresql_version: '9.4' diff --git a/postgresql/tasks/main.yml b/postgresql/tasks/main.yml index c1502530..b090b09d 100644 --- a/postgresql/tasks/main.yml +++ b/postgresql/tasks/main.yml @@ -1,5 +1,8 @@ --- +- include: pgdg-repo.yml + when: postgresql_version != '9.4' + - include: packages.yml - include: config.yml diff --git a/postgresql/tasks/packages.yml b/postgresql/tasks/packages.yml index 9754f4bc..12f543c9 100644 --- a/postgresql/tasks/packages.yml +++ b/postgresql/tasks/packages.yml @@ -3,4 +3,4 @@ - name: Install postgresql package apt: name: '{{item}}' - with_items: ['postgresql', 'ptop'] + with_items: ['postgresql-{{postgresql_version}}', 'ptop'] diff --git a/postgresql/tasks/pgdg-repo.yml b/postgresql/tasks/pgdg-repo.yml new file mode 100644 index 00000000..c280d173 --- /dev/null +++ b/postgresql/tasks/pgdg-repo.yml @@ -0,0 +1,15 @@ +--- +- name: Add PGDG repository + apt_repository: + repo: "deb http://apt.postgresql.org/pub/repos/apt/ {{ansible_distribution_release}}-pgdg main" + update_cache: yes + +- name: Add GPG key for PGDG repository + apt_key: + url: http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc + +- name: Add APT preference file + template: + src: postgresql.pref + dest: /etc/apt/preferences.d/ + mode: "0644" diff --git a/postgresql/templates/postgresql.pref b/postgresql/templates/postgresql.pref new file mode 100644 index 00000000..74196cf6 --- /dev/null +++ b/postgresql/templates/postgresql.pref @@ -0,0 +1,3 @@ +Package: postgresql-{{postgresql_version}} postgresql-client-common postgresql-common libpq5 ptop +Pin: release a={{ansible_distribution_release}}-pgdg +Pin-Priority: 999