From e0ed6b6e7734236b5275dddb44c1d2caa0a40f2b Mon Sep 17 00:00:00 2001 From: Gilles Dartiguelongue Date: Tue, 7 Jun 2016 11:52:47 +0200 Subject: [PATCH 1/3] 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: From 749d2f2e12d1692f420036066ca2345f70f71cc2 Mon Sep 17 00:00:00 2001 From: Gilles Dartiguelongue Date: Tue, 7 Jun 2016 11:53:44 +0200 Subject: [PATCH 2/3] Drop redundant -D datadir from Arch initdb command --- postgres/osmap.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/postgres/osmap.yaml b/postgres/osmap.yaml index a1d47b5..fd6e3a8 100644 --- a/postgres/osmap.yaml +++ b/postgres/osmap.yaml @@ -10,8 +10,9 @@ Arch: conf_dir: /var/lib/postgres/data data_dir: /var/lib/postgres/data initdb_user: postgres + initdb_args: --locale en_US.UTF8 -E UTF8 commands: - initdb: initdb --locale en_US.UTF8 -E UTF8 -D "/var/lib/postgres/data" + initdb: initdb pkg_client: postgresql pkg_dev: postgresql Debian: From c1ea7896904100fa4bf8c0ef2682d6d2f64df100 Mon Sep 17 00:00:00 2001 From: Gilles Dartiguelongue Date: Tue, 7 Jun 2016 11:54:48 +0200 Subject: [PATCH 3/3] Switch version specific Debian pkg_dev to "virtual" package This package depends on the proper version per release. --- postgres/codenamemap.yaml | 8 -------- postgres/osmap.yaml | 1 + 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/postgres/codenamemap.yaml b/postgres/codenamemap.yaml index 6e30c41..8cb1b2d 100644 --- a/postgres/codenamemap.yaml +++ b/postgres/codenamemap.yaml @@ -3,45 +3,37 @@ precise: pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main conf_dir: /etc/postgresql/9.4/main data_dir: /var/lib/postgresql/9.4/main - pkg_dev: postgresql-server-dev-9.4 wheezy: pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main conf_dir: /etc/postgresql/9.1/main data_dir: /var/lib/postgresql/9.1/main - pkg_dev: postgresql-server-dev-9.1 jessie: version: 9.4 pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main conf_dir: /etc/postgresql/9.4/main data_dir: /var/lib/postgresql/9.4/main - pkg_dev: postgresql-server-dev-9.4 trusty: version: 9.3 pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main conf_dir: /etc/postgresql/9.3/main data_dir: /var/lib/postgresql/9.3/main - pkg_dev: postgresql-server-dev-9.3 utopic: version: 9.4 pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main conf_dir: /etc/postgresql/9.4/main data_dir: /var/lib/postgresql/9.4/main - pkg_dev: postgresql-server-dev-9.4 vivid: version: 9.4 pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main conf_dir: /etc/postgresql/9.4/main data_dir: /var/lib/postgresql/9.4/main - pkg_dev: postgresql-server-dev-9.4 wily: version: 9.4 pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ wily-pgdg main conf_dir: /etc/postgresql/9.4/main data_dir: /var/lib/postgresql/9.4/main - pkg_dev: postgresql-server-dev-9.4 xenial: version: 9.5 pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main conf_dir: /etc/postgresql/9.5/main data_dir: /var/lib/postgresql/9.5/main - pkg_dev: postgresql-server-dev-9.5 diff --git a/postgres/osmap.yaml b/postgres/osmap.yaml index fd6e3a8..72d4981 100644 --- a/postgres/osmap.yaml +++ b/postgres/osmap.yaml @@ -17,6 +17,7 @@ Arch: pkg_dev: postgresql Debian: pkg_repo_file: /etc/apt/sources.list.d/pgdg.list + pkg_dev: postgresql-server-dev-all pkg_libpq_dev: libpq-dev initdb: False Suse: