From e0ed6b6e7734236b5275dddb44c1d2caa0a40f2b Mon Sep 17 00:00:00 2001 From: Gilles Dartiguelongue Date: Tue, 7 Jun 2016 11:52:47 +0200 Subject: [PATCH] Kill create_cluster pillar switch, refs: #100 It is just a variant of init_db. A more correct solution would be to support configuring a different initdb command while passing values from the pillar by default like version. This would make it truly generic but is probably not achievable given current pillar self-referencing capabilities (ie. none). Thus, I decided to make it OS family specific since Debian provides its own tools to manage clusters, etc. Gentoo also has a specific way to initialize a new cluster which does not fit with commands.initdb so the current if/elif would be extended when support is added for Gentoo. --- postgres/defaults.yaml | 7 +++---- postgres/init.sls | 31 +++++++------------------------ postgres/osmap.yaml | 8 +++----- 3 files changed, 13 insertions(+), 33 deletions(-) diff --git a/postgres/defaults.yaml b/postgres/defaults.yaml index 703a38e..7dd6013 100644 --- a/postgres/defaults.yaml +++ b/postgres/defaults.yaml @@ -8,8 +8,6 @@ postgres: service: postgresql conf_dir: /var/lib/pgsql/data data_dir: /var/lib/pgsql/data - create_cluster: False - init_db: False version: 9.1 use_upstream_repo: False users: {} @@ -19,9 +17,10 @@ postgres: postgresconf_backup: True postgresconf: "" pg_hba.conf: salt://postgres/pg_hba.conf - commands: - initdb: service postgresql initdb + initdb: True initdb_user: root initdb_args: --data-checksum + commands: + initdb: service postgresql initdb user: postgres group: postgres diff --git a/postgres/init.sls b/postgres/init.sls index b0d1347..6166576 100644 --- a/postgres/init.sls +++ b/postgres/init.sls @@ -28,34 +28,18 @@ postgresql-installed: # make sure the data directory and contents have been initialized postgresql-cluster-prepared: cmd.run: - - cwd: / -{% if postgres.create_cluster != False %} - - user: root - - name: pg_createcluster {{ postgres.version }} main -{% else %} - - name: test -f {{ postgres.conf_dir }}/environment -{% endif %} - - unless: - - test -f {{ postgres.conf_dir }}/environment - - require: - - pkg: postgresql-installed - - env: - LC_ALL: C.UTF-8 - -postgresql-db-prepared: - cmd.run: -{% if postgres.init_db != False %} - - user: {{ postgres.initdb_user }} + {% if postgres.initdb %} - name: {{ postgres.commands.initdb }} {{ postgres.initdb_args }} -D {{ postgres.data_dir }} - -{% else %} - - name: test -f {{ postgres.data_dir }}/PG_VERSION -{% endif %} + {% elif grains.os_family == 'Debian' %} + - name: pg_createcluster {{ postgres.version }} main + {# else: TODO #} + {% endif %} + - cwd: / + - user: {{ postgres.initdb_user }} - unless: - test -f {{ postgres.data_dir }}/PG_VERSION - require: - pkg: postgresql-installed - - cmd: postgresql-cluster-prepared - env: LC_ALL: C.UTF-8 @@ -67,7 +51,6 @@ postgresql-running: - reload: true - require: - cmd: postgresql-cluster-prepared - - cmd: postgresql-db-prepared {% if postgres.pkgs_extra %} postgresql-extra-pkgs-installed: diff --git a/postgres/osmap.yaml b/postgres/osmap.yaml index 4ffbc62..a1d47b5 100644 --- a/postgres/osmap.yaml +++ b/postgres/osmap.yaml @@ -1,8 +1,7 @@ RedHat: - init_db: True + initdb_user: postgres commands: initdb: initdb - initdb_user: postgres pkg: postgresql-server pkg_client: postgresql pkg_repo: pgdg94 @@ -10,7 +9,6 @@ RedHat: Arch: conf_dir: /var/lib/postgres/data data_dir: /var/lib/postgres/data - init_db: True initdb_user: postgres commands: initdb: initdb --locale en_US.UTF8 -E UTF8 -D "/var/lib/postgres/data" @@ -19,11 +17,11 @@ Arch: Debian: pkg_repo_file: /etc/apt/sources.list.d/pgdg.list pkg_libpq_dev: libpq-dev + initdb: False Suse: - init_db: True + initdb_user: postgres commands: initdb: initdb - initdb_user: postgres pkg: postgresql-server pkg_client: postgresql FreeBSD: