From 59308c5e5c23d03610356e9e1986582b6bb08bec Mon Sep 17 00:00:00 2001 From: Andrea Dell'Amico Date: Tue, 1 Mar 2016 18:01:41 +0100 Subject: [PATCH] library/roles/postgresql: Add a playbook to install pgpool. Only the package right now. --- postgresql/defaults/main.yml | 8 +++++++- postgresql/handlers/main.yml | 2 ++ postgresql/tasks/main.yml | 20 ++++++++++++++++---- postgresql/tasks/packages.yml | 23 +++++++++++------------ postgresql/tasks/pgpool-ii.yml | 6 ++++++ 5 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 postgresql/tasks/pgpool-ii.yml diff --git a/postgresql/defaults/main.yml b/postgresql/defaults/main.yml index 1e67d00f..01ddd571 100644 --- a/postgresql/defaults/main.yml +++ b/postgresql/defaults/main.yml @@ -2,6 +2,9 @@ pg_use_postgresql_org_repo: True +psql_postgresql_install: True +postgresql_enabled: True +psql_pgpool_install: False # 9.3 is the default version for Ubuntu trusty # It is highly recommended to use the postgresql.org repositories # @@ -39,7 +42,6 @@ postgresql_pkgs: - postgresql-client-'{{ psql_version }}' - pgtop - psql_db_name: db_name psql_db_user: db_user psql_db_pwd: "We cannot save the password into the repository. Use another variable and change pgpass.j2 accordingly. Encrypt the file that contains the variable with ansible-vault" @@ -72,3 +74,7 @@ pg_backup_use_nagios: "yes" # Example of line needed to manage the db accesses (used by iptables too), without creating the db and the user. Useful, for example, to give someone access to the postgresql db #- { name: '{{ psql_db_name }}', user: '{{ psql_db_user }}', allowed_hosts: [ 'xxx.xxx.xxx.xxx/32', 'yyy.yyy.yyy.yyy/32' ] } +pgpool_pkgs: + - 'postgresql-{{ psql_version }}-pgpool2' + + diff --git a/postgresql/handlers/main.yml b/postgresql/handlers/main.yml index a82fa733..910424e6 100644 --- a/postgresql/handlers/main.yml +++ b/postgresql/handlers/main.yml @@ -1,6 +1,8 @@ --- - name: Restart postgresql service: name=postgresql state=restarted + when: postgresql_enabled - name: Reload postgresql service: name=postgresql state=reloaded + when: postgresql_enabled diff --git a/postgresql/tasks/main.yml b/postgresql/tasks/main.yml index 4b5c71d7..17576642 100644 --- a/postgresql/tasks/main.yml +++ b/postgresql/tasks/main.yml @@ -2,15 +2,27 @@ - include: postgresql_org_repo.yml when: pg_use_postgresql_org_repo - include: packages.yml + when: psql_postgresql_install - include: postgis.yml when: postgres_install_gis_extensions - include: postgresql-config.yml + when: psql_postgresql_install - include: psql-kernel-sharedmem.yml - when: psql_set_shared_memory + when: + - psql_postgresql_install + - psql_set_shared_memory - include: configure-access.yml - when: psql_db_data is defined + when: + - psql_postgresql_install + - psql_db_data is defined - include: manage_pg_db.yml - when: psql_db_data is defined + when: + - psql_postgresql_install + - psql_db_data is defined - include: postgresql-backup.yml - when: psql_db_data is defined + when: + - psql_postgresql_install + - psql_db_data is defined +- include: pgpool-ii.yml + when: psql_pgpool_install diff --git a/postgresql/tasks/packages.yml b/postgresql/tasks/packages.yml index a49826d8..b3c89d4d 100644 --- a/postgresql/tasks/packages.yml +++ b/postgresql/tasks/packages.yml @@ -1,24 +1,23 @@ --- - name: install the postgresql packages apt: pkg={{ item }} state=installed - with_items: postgresql_pkgs - notify: - Restart postgresql - tags: - - postgresql - - postgres + with_items: '{{ postgresql_pkgs }}' + notify: Restart postgresql + tags: [ 'postgresql', 'postgres' ] - name: Install the packages that ansible needs to manage the postgresql users and databases apt: pkg={{ item }} state=installed with_items: - python-psycopg2 - tags: - - postgresql - - postgres + tags: [ 'postgresql', 'postgres' ] - name: Ensure that the postgresql server is started service: name=postgresql state=started enabled=yes - tags: - - postgresql - - postgres + when: postgresql_enabled + tags: [ 'postgresql', 'postgres' ] + +- name: Ensure that the postgresql server is stopped and disabled + service: name=postgresql state=stopped enabled=no + when: not postgresql_enabled + tags: [ 'postgresql', 'postgres' ] diff --git a/postgresql/tasks/pgpool-ii.yml b/postgresql/tasks/pgpool-ii.yml new file mode 100644 index 00000000..ce042be2 --- /dev/null +++ b/postgresql/tasks/pgpool-ii.yml @@ -0,0 +1,6 @@ +--- +- name: Install the pgpool package + apt: name={{ item }} state=installed + with_items: '{{ pgpool_pkgs }}' + tags: [ 'postgresql', 'pgpool' ] +