From e742492e454e098aa2924d5e5b750d499ba9258c Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 29 Sep 2016 14:33:39 -0500 Subject: [PATCH] Fix broken tests, add Debian 8 test. --- .travis.yml | 10 +++++++++- README.md | 7 +++++++ tasks/initialize.yml | 4 ++-- tasks/variables.yml | 17 ++++++++++++++++- templates/postgres.sh.j2 | 1 + tests/test.yml | 6 ++++++ vars/{Debian.yml => Debian-8.yml} | 2 ++ vars/RedHat.yml | 2 ++ vars/Ubuntu-1404.yml | 8 ++++++++ vars/Ubuntu-1604.yml | 8 ++++++++ 10 files changed, 61 insertions(+), 4 deletions(-) rename vars/{Debian.yml => Debian-8.yml} (51%) create mode 100644 vars/Ubuntu-1404.yml create mode 100644 vars/Ubuntu-1604.yml diff --git a/.travis.yml b/.travis.yml index f5a1318..be59c5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,15 +5,23 @@ env: - distro: centos7 init: /usr/lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + postgres_bin_path: /usr/bin - distro: centos6 init: /sbin/init run_opts: "" + postgres_bin_path: /usr/bin - distro: ubuntu1604 init: /lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + postgres_bin_path: /usr/lib/postgresql/9.5/bin - distro: ubuntu1404 init: /sbin/init run_opts: "" + postgres_bin_path: /usr/lib/postgresql/9.3/bin + - distro: debian8 + init: /lib/systemd/systemd + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + postgres_bin_path: /usr/lib/postgresql/9.4/bin services: - docker @@ -43,7 +51,7 @@ script: || (echo 'Idempotence test: fail' && exit 1) # Check PostgreSQL status. - - 'docker exec -u postgres "$(cat ${container_id})" pg_ctl -D /var/lib/pgsql/data status' + - 'docker exec -u postgres "$(cat ${container_id})" ${postgres_bin_path}/pg_ctl -D /var/lib/pgsql/data status' after_failure: # Check what happened on systemd systems. diff --git a/README.md b/README.md index db93bff..93f5812 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,13 @@ TODO. role_attr_flags: CREATEDB,NOSUPERUSER # optional state: present # optional +TODO. + + postgresql_version: [OS-specific] + postgresql_bin_path: [OS-specific] + postgresql_daemon: [OS-specific] + postgresql_packages: [OS-specific] + TODO. ## Dependencies diff --git a/tasks/initialize.yml b/tasks/initialize.yml index 6df7a87..807eb65 100644 --- a/tasks/initialize.yml +++ b/tasks/initialize.yml @@ -1,5 +1,5 @@ --- -- name: Set PGDATA environment variable. +- name: Set PostgreSQL environment variables. template: src: postgres.sh.j2 dest: /etc/profile.d/postgres.sh @@ -19,7 +19,7 @@ register: pgdata_dir_version - name: Ensure PostgreSQL database is initialized. - command: "initdb -D {{ postgresql_data_dir }}" + command: "{{ postgresql_bin_path }}/initdb -D {{ postgresql_data_dir }}" when: not pgdata_dir_version.stat.exists become: yes become_user: "{{ postgresql_user }}" diff --git a/tasks/variables.yml b/tasks/variables.yml index e50b1f8..3551ff7 100644 --- a/tasks/variables.yml +++ b/tasks/variables.yml @@ -1,7 +1,12 @@ --- # Variable configuration. -- name: Include OS-specific variables. +- name: Include OS-specific variables (Debian). + include_vars: "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml" + when: ansible_os_family == 'Debian' + +- name: Include OS-specific variables (RedHat). include_vars: "{{ ansible_os_family }}.yml" + when: ansible_os_family == 'RedHat' - name: Define postgresql_packages. set_fact: @@ -12,3 +17,13 @@ set_fact: postgresql_daemon: "{{ __postgresql_daemon }}" when: postgresql_daemon is not defined + +- name: Define postgresql_version. + set_fact: + postgresql_version: "{{ __postgresql_version }}" + when: postgresql_version is not defined + +- name: Define postgresql_bin_path. + set_fact: + postgresql_bin_path: "{{ __postgresql_bin_path }}" + when: postgresql_bin_path is not defined diff --git a/templates/postgres.sh.j2 b/templates/postgres.sh.j2 index 4a2ad5b..7264064 100644 --- a/templates/postgres.sh.j2 +++ b/templates/postgres.sh.j2 @@ -1 +1,2 @@ export PGDATA={{ postgresql_data_dir }} +export PATH=$PATH:{{ postgresql_bin_path }} diff --git a/tests/test.yml b/tests/test.yml index 7744b49..524eb6b 100644 --- a/tests/test.yml +++ b/tests/test.yml @@ -1,6 +1,12 @@ --- - hosts: all + vars: + postgresql_databases: + - name: example + postgresql_users: + - name: jdoe + pre_tasks: - name: Update apt cache. apt: update_cache=yes diff --git a/vars/Debian.yml b/vars/Debian-8.yml similarity index 51% rename from vars/Debian.yml rename to vars/Debian-8.yml index aab2b71..0d08efc 100644 --- a/vars/Debian.yml +++ b/vars/Debian-8.yml @@ -1,4 +1,6 @@ --- +__postgresql_version: "9.5" +__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin" __postgresql_daemon: postgresql __postgresql_packages: - postgresql diff --git a/vars/RedHat.yml b/vars/RedHat.yml index 26dfe20..fed2c4e 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -1,4 +1,6 @@ --- +__postgresql_version: "9.2" +__postgresql_bin_path: "/usr/bin" __postgresql_daemon: postgresql __postgresql_packages: - postgresql diff --git a/vars/Ubuntu-1404.yml b/vars/Ubuntu-1404.yml new file mode 100644 index 0000000..0d08efc --- /dev/null +++ b/vars/Ubuntu-1404.yml @@ -0,0 +1,8 @@ +--- +__postgresql_version: "9.5" +__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin" +__postgresql_daemon: postgresql +__postgresql_packages: + - postgresql + - postgresql-contrib + - libpq-dev diff --git a/vars/Ubuntu-1604.yml b/vars/Ubuntu-1604.yml new file mode 100644 index 0000000..0d08efc --- /dev/null +++ b/vars/Ubuntu-1604.yml @@ -0,0 +1,8 @@ +--- +__postgresql_version: "9.5" +__postgresql_bin_path: "/usr/lib/postgresql/{{ __postgresql_version }}/bin" +__postgresql_daemon: postgresql +__postgresql_packages: + - postgresql + - postgresql-contrib + - libpq-dev