Merge pull request #110 from dynjnelson/master
revamp cluster initialization, fix usage of user/owner/runas/db_user, add dependencies
This commit is contained in:
@@ -174,7 +174,7 @@ def tablespace_exists(name, user=None, host=None, port=None, maintenance_db=None
|
|||||||
return name in tablespaces
|
return name in tablespaces
|
||||||
|
|
||||||
|
|
||||||
def tablespace_create(name, location, user=None, host=None, port=None,
|
def tablespace_create(name, location, owner=None, user=None, host=None, port=None,
|
||||||
maintenance_db=None, password=None, runas=None):
|
maintenance_db=None, password=None, runas=None):
|
||||||
'''
|
'''
|
||||||
Adds a tablespace to the Postgres server.
|
Adds a tablespace to the Postgres server.
|
||||||
@@ -185,7 +185,9 @@ def tablespace_create(name, location, user=None, host=None, port=None,
|
|||||||
|
|
||||||
salt '*' postgres_ext.tablespace_create tablespacename '/path/datadir'
|
salt '*' postgres_ext.tablespace_create tablespacename '/path/datadir'
|
||||||
'''
|
'''
|
||||||
query = 'CREATE TABLESPACE {0} LOCATION \'{1}\''.format(name, location)
|
query = 'CREATE TABLESPACE "{0}" LOCATION \'{1}\''.format(name, location)
|
||||||
|
if owner is not None:
|
||||||
|
query += ' OWNER "{1}"'.format(owner)
|
||||||
|
|
||||||
# Execute the command
|
# Execute the command
|
||||||
ret = _psql_prepare_and_run(['-c', query],
|
ret = _psql_prepare_and_run(['-c', query],
|
||||||
@@ -212,16 +214,16 @@ def tablespace_alter(name, user=None, host=None, port=None, maintenance_db=None,
|
|||||||
queries = []
|
queries = []
|
||||||
|
|
||||||
if new_name:
|
if new_name:
|
||||||
queries.append('ALTER TABLESPACE {} RENAME TO {}'.format(
|
queries.append('ALTER TABLESPACE "{}" RENAME TO "{}"'.format(
|
||||||
name, new_name))
|
name, new_name))
|
||||||
if new_owner:
|
if new_owner:
|
||||||
queries.append('ALTER TABLESPACE {} OWNER TO {}'.format(
|
queries.append('ALTER TABLESPACE "{}" OWNER TO "{}"'.format(
|
||||||
name, new_owner))
|
name, new_owner))
|
||||||
if set_option:
|
if set_option:
|
||||||
queries.append('ALTER TABLESPACE {} SET ({} = {})'.format(
|
queries.append('ALTER TABLESPACE "{}" SET ({} = {})'.format(
|
||||||
name, set_option[0], set_option[1]))
|
name, set_option[0], set_option[1]))
|
||||||
if reset_option:
|
if reset_option:
|
||||||
queries.append('ALTER TABLESPACE {} RESET ({})'.format(
|
queries.append('ALTER TABLESPACE "{}" RESET ({})'.format(
|
||||||
name, reset_option))
|
name, reset_option))
|
||||||
|
|
||||||
for query in queries:
|
for query in queries:
|
||||||
@@ -243,7 +245,7 @@ def tablespace_remove(name, user=None, host=None, port=None,
|
|||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
salt '*' postgres_ext.tablespace_remove tsname
|
salt '*' postgres_ext.tablespace_remove tsname
|
||||||
'''
|
'''
|
||||||
query = 'DROP TABLESPACE {}'.format(name)
|
query = 'DROP TABLESPACE "{}"'.format(name)
|
||||||
ret = _psql_prepare_and_run(['-c', query],
|
ret = _psql_prepare_and_run(['-c', query],
|
||||||
user=user,
|
user=user,
|
||||||
host=host,
|
host=host,
|
||||||
@@ -252,3 +254,4 @@ def tablespace_remove(name, user=None, host=None, port=None,
|
|||||||
maintenance_db=maintenance_db,
|
maintenance_db=maintenance_db,
|
||||||
password=password)
|
password=password)
|
||||||
return ret['retcode'] == 0
|
return ret['retcode'] == 0
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
postgres:
|
postgres:
|
||||||
pg_hba.conf: salt://postgres/pg_hba.conf
|
pg_hba.conf: salt://postgres/pg_hba.conf
|
||||||
commands:
|
prepare_cluster:
|
||||||
initdb: service postgresql initdb
|
user: root
|
||||||
|
command: service postgresql initdb
|
||||||
|
test: test -f /path/to/some/file
|
||||||
|
env:
|
||||||
|
LC_ALL: en_US.UTF-8
|
||||||
|
|
||||||
use_upstream_repo: False
|
use_upstream_repo: False
|
||||||
|
|
||||||
lookup:
|
pkg: 'postgresql-9.3'
|
||||||
pkg: 'postgresql-9.3'
|
pkg_client: 'postgresql-client-9.3'
|
||||||
pkg_client: 'postgresql-client-9.3'
|
pkgs_extra:
|
||||||
pkgs_extra:
|
- postgresql-contrib
|
||||||
- postgresql-contrib
|
- postgresql-plpython
|
||||||
- postgresql-plpython
|
|
||||||
pg_hba: '/etc/postgresql/9.3/main/pg_hba.conf'
|
|
||||||
|
|
||||||
users:
|
users:
|
||||||
localUser:
|
localUser:
|
||||||
@@ -55,8 +57,8 @@ postgres:
|
|||||||
owner: 'localUser'
|
owner: 'localUser'
|
||||||
user: 'localUser'
|
user: 'localUser'
|
||||||
template: 'template0'
|
template: 'template0'
|
||||||
lc_ctype: 'C.UTF-8'
|
lc_ctype: 'en_US.UTF-8'
|
||||||
lc_collate: 'C.UTF-8'
|
lc_collate: 'en_US.UTF-8'
|
||||||
# optional schemas to enable on database
|
# optional schemas to enable on database
|
||||||
schemas:
|
schemas:
|
||||||
uuid_ossp:
|
uuid_ossp:
|
||||||
@@ -69,8 +71,8 @@ postgres:
|
|||||||
owner: 'localUser'
|
owner: 'localUser'
|
||||||
user: 'remoteUser'
|
user: 'remoteUser'
|
||||||
template: 'template0'
|
template: 'template0'
|
||||||
lc_ctype: 'C.UTF-8'
|
lc_ctype: 'en_US.UTF-8'
|
||||||
lc_collate: 'C.UTF-8'
|
lc_collate: 'en_US.UTF-8'
|
||||||
tablespace: 'my_space'
|
tablespace: 'my_space'
|
||||||
# optional extensions to enable on database
|
# optional extensions to enable on database
|
||||||
# extensions:
|
# extensions:
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
{%- macro ubuntu_block(name, version) %}
|
{%- macro ubuntu_block(name, version) %}
|
||||||
{{ name }}:
|
{{ name }}:
|
||||||
version: {{ version }}
|
|
||||||
pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ {{ name }}-pgdg main
|
pkg_repo: deb http://apt.postgresql.org/pub/repos/apt/ {{ name }}-pgdg main
|
||||||
conf_dir: /etc/postgresql/{{ version }}/main
|
conf_dir: /etc/postgresql/{{ version }}/main
|
||||||
data_dir: /var/lib/postgresql/{{ version }}/main
|
prepare_cluster:
|
||||||
|
command: pg_createcluster {{ version }} main
|
||||||
|
test: test -f /var/lib/postgresql/{{ version }}/main/PG_VERSION && test -f /etc/postgresql/{{ version }}/main/postgresql.conf
|
||||||
|
user: root
|
||||||
|
env: {}
|
||||||
{%- endmacro %}
|
{%- endmacro %}
|
||||||
|
|
||||||
{{ ubuntu_block('wheezy', 9.1) }}
|
{{ ubuntu_block('wheezy', 9.1) }}
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ postgres:
|
|||||||
python: python-psycopg2
|
python: python-psycopg2
|
||||||
service: postgresql
|
service: postgresql
|
||||||
conf_dir: /var/lib/pgsql/data
|
conf_dir: /var/lib/pgsql/data
|
||||||
data_dir: /var/lib/pgsql/data
|
|
||||||
version: 9.1
|
|
||||||
use_upstream_repo: False
|
use_upstream_repo: False
|
||||||
users: {}
|
users: {}
|
||||||
acls: []
|
acls: []
|
||||||
@@ -17,10 +15,16 @@ postgres:
|
|||||||
postgresconf_backup: True
|
postgresconf_backup: True
|
||||||
postgresconf: ""
|
postgresconf: ""
|
||||||
pg_hba.conf: salt://postgres/pg_hba.conf
|
pg_hba.conf: salt://postgres/pg_hba.conf
|
||||||
initdb: True
|
|
||||||
initdb_user: root
|
|
||||||
initdb_args: --data-checksum
|
|
||||||
commands:
|
|
||||||
initdb: service postgresql initdb
|
|
||||||
user: postgres
|
user: postgres
|
||||||
group: postgres
|
group: postgres
|
||||||
|
# if prepare_cluster is over-ridden in any of:
|
||||||
|
# - osmap.yaml
|
||||||
|
# - oscodenamemap.yaml
|
||||||
|
# - osfingermap.yaml
|
||||||
|
# you will have to specify a complete dictionary.
|
||||||
|
prepare_cluster:
|
||||||
|
user: root
|
||||||
|
command: service postgresql initdb
|
||||||
|
test: test -f /var/lib/pgsql/data/PG_VERSION
|
||||||
|
env: {}
|
||||||
|
|
||||||
|
|||||||
@@ -16,9 +16,7 @@ postgresql-config-dir:
|
|||||||
- makedirs: True
|
- makedirs: True
|
||||||
- require:
|
- require:
|
||||||
- pkg: postgresql-installed
|
- pkg: postgresql-installed
|
||||||
{% if postgres.conf_dir == postgres.data_dir %}
|
|
||||||
- cmd: postgresql-cluster-prepared
|
- cmd: postgresql-cluster-prepared
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
postgresql-installed:
|
postgresql-installed:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
@@ -28,20 +26,17 @@ postgresql-installed:
|
|||||||
# make sure the data directory and contents have been initialized
|
# make sure the data directory and contents have been initialized
|
||||||
postgresql-cluster-prepared:
|
postgresql-cluster-prepared:
|
||||||
cmd.run:
|
cmd.run:
|
||||||
{% if postgres.initdb %}
|
|
||||||
- name: {{ postgres.commands.initdb }} {{ postgres.initdb_args }} -D {{ postgres.data_dir }}
|
|
||||||
{% elif grains.os_family == 'Debian' %}
|
|
||||||
- name: pg_createcluster {{ postgres.version }} main
|
|
||||||
{# else: TODO #}
|
|
||||||
{% endif %}
|
|
||||||
- cwd: /
|
- cwd: /
|
||||||
- user: {{ postgres.initdb_user }}
|
- name: {{ postgres.prepare_cluster.command }}
|
||||||
|
- user: {{ postgres.prepare_cluster.user }}
|
||||||
- unless:
|
- unless:
|
||||||
- test -f {{ postgres.data_dir }}/PG_VERSION
|
- {{ postgres.prepare_cluster.test }}
|
||||||
- require:
|
- require:
|
||||||
- pkg: postgresql-installed
|
- pkg: postgresql-installed
|
||||||
- env:
|
- env:
|
||||||
LC_ALL: C.UTF-8
|
{% for name, value in postgres.prepare_cluster.env.items() %}
|
||||||
|
{{ name }}: {{ value }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
postgresql-running:
|
postgresql-running:
|
||||||
service.running:
|
service.running:
|
||||||
@@ -96,6 +91,9 @@ postgresql-user-{{ name }}:
|
|||||||
postgres_user.absent:
|
postgres_user.absent:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
- user: {{ user.get('runas', postgres.user) }}
|
- user: {{ user.get('runas', postgres.user) }}
|
||||||
|
{% if user.get('user') %}
|
||||||
|
- db_user: {{ user.user }}
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
postgres_user.present:
|
postgres_user.present:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
@@ -104,20 +102,26 @@ postgresql-user-{{ name }}:
|
|||||||
- createuser: {{ user.get('createuser', False) }}
|
- createuser: {{ user.get('createuser', False) }}
|
||||||
- inherit: {{ user.get('inherit', True) }}
|
- inherit: {{ user.get('inherit', True) }}
|
||||||
- replication: {{ user.get('replication', False) }}
|
- replication: {{ user.get('replication', False) }}
|
||||||
- password: {{ user.get('password', 'changethis') }}
|
- password: {{ user.password }}
|
||||||
- user: {{ user.get('runas', postgres.user) }}
|
|
||||||
- superuser: {{ user.get('superuser', False) }}
|
- superuser: {{ user.get('superuser', False) }}
|
||||||
|
- user: {{ user.get('runas', postgres.user) }}
|
||||||
|
{% if user.get('user') %}
|
||||||
|
- db_user: {{ user.get('runas', postgres.user) }}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
|
{% if user.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ user.user }}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for name, directory in postgres.tablespaces.items() %}
|
{% for name, tblspace in postgres.tablespaces.items() %}
|
||||||
postgresql-tablespace-dir-perms-{{ directory}}:
|
postgresql-tablespace-dir-perms-{{ tblspace.directory}}:
|
||||||
file.directory:
|
file.directory:
|
||||||
- name: {{ directory }}
|
- name: {{ tblspace.directory }}
|
||||||
- user: postgres
|
- user: {{ postgres.user }}
|
||||||
- group: postgres
|
- group: {{ postgres.group }}
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
- recurse:
|
- recurse:
|
||||||
- user
|
- user
|
||||||
@@ -126,11 +130,17 @@ postgresql-tablespace-dir-perms-{{ directory}}:
|
|||||||
postgresql-tablespace-{{ name }}:
|
postgresql-tablespace-{{ name }}:
|
||||||
postgres_tablespace.present:
|
postgres_tablespace.present:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
- directory: {{ directory }}
|
- directory: {{ tblspace.directory }}
|
||||||
- user: postgres
|
- user: {{ tblspace.get('runas', postgres.user) }}
|
||||||
|
{% if tblspace.get('user') %}
|
||||||
|
- db_user: {{ tblspace.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if tblspace.get('owner') %}
|
||||||
|
- owner: {{ tblspace.owner }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
- file: postgresql-tablespace-dir-perms-{{ directory}}
|
- file: postgresql-tablespace-dir-perms-{{ tblspace.directory}}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% for name, db in postgres.databases.items() %}
|
{% for name, db in postgres.databases.items() %}
|
||||||
@@ -138,58 +148,115 @@ postgresql-db-{{ name }}:
|
|||||||
{% if db.get('ensure', 'present') == 'absent' %}
|
{% if db.get('ensure', 'present') == 'absent' %}
|
||||||
postgres_database.absent:
|
postgres_database.absent:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
|
- user: {{ db.get('runas', postgres.user) }}
|
||||||
|
{% if db.get('user') %}
|
||||||
|
- db_user: {{ db.user }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
{% else %}
|
{% else %}
|
||||||
postgres_database.present:
|
postgres_database.present:
|
||||||
- name: {{ name }}
|
- name: {{ name }}
|
||||||
- encoding: {{ db.get('encoding', 'UTF8') }}
|
{% if 'encoding' in db %}
|
||||||
- lc_ctype: {{ db.get('lc_ctype', 'en_US.UTF8') }}
|
- encoding: {{ db.encoding }}
|
||||||
- lc_collate: {{ db.get('lc_collate', 'en_US.UTF8') }}
|
{% endif %}
|
||||||
|
{% if 'lc_ctype' in db %}
|
||||||
|
- lc_ctype: {{ db.lc_type }}
|
||||||
|
{% endif %}
|
||||||
|
{% if 'lc_collate' in db %}
|
||||||
|
- lc_collate: {{ db.lc_collate }}
|
||||||
|
{% endif %}
|
||||||
- template: {{ db.get('template', 'template0') }}
|
- template: {{ db.get('template', 'template0') }}
|
||||||
- tablespace: {{ db.get('tablespace', 'pg_default') }}
|
- tablespace: {{ db.get('tablespace', 'pg_default') }}
|
||||||
{% if db.get('owner') %}
|
{% if db.get('owner') %}
|
||||||
- owner: {{ db.get('owner') }}
|
- owner: {{ db.owner }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
- user: {{ db.get('runas', postgres.user) }}
|
- user: {{ db.get('runas', postgres.user) }}
|
||||||
|
{% if db.get('user') %}
|
||||||
|
- db_user: {{ db.user }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
{% if db.get('user') %}
|
{% if db.get('user') %}
|
||||||
- postgres_user: postgresql-user-{{ db.get('user') }}
|
- postgres_user: postgresql-user-{{ db.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if db.get('owner') %}
|
||||||
|
- postgres_user: postgresql-user-{{ db.owner }}
|
||||||
|
{% endif %}
|
||||||
|
{% if db.get('tablespace') %}
|
||||||
|
- postgres_tablespace: postgresql-tablespace-{{ name }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if db.schemas is defined %}
|
{# NOTE: postgres_schema doesn't have a 'runas' equiv. at all #}
|
||||||
{% for schema, schema_args in db.schemas.items() %}
|
{% for schema_name, schema in db.get('schemas', dict()).items() %}
|
||||||
postgresql-schema-{{ schema }}-for-db-{{ name }}:
|
postgresql-schema-{{ schema_name }}-for-db-{{ name }}:
|
||||||
|
{% if schema.get('ensure', 'present') == 'absent' %}
|
||||||
|
postgres_schema.absent:
|
||||||
|
- name: {{ schema_name }}
|
||||||
|
{% if schema.get('user') %}
|
||||||
|
- db_user: {{ schema.user }}
|
||||||
|
{% endif %}
|
||||||
|
- require:
|
||||||
|
- service: postgresql-running
|
||||||
|
{% else %}
|
||||||
postgres_schema.present:
|
postgres_schema.present:
|
||||||
- name: {{ schema }}
|
- name: {{ schema_name }}
|
||||||
- dbname: {{ name }}
|
- dbname: {{ name }}
|
||||||
{% if schema_args is not none %}
|
{% if schema.get('user') %}
|
||||||
{% for arg, value in schema_args.items() %}
|
- db_user: {{ schema.user }}
|
||||||
- {{ arg }}: {{ value }}
|
{% endif %}
|
||||||
{% endfor %}
|
{% if schema.get('owner') %}
|
||||||
|
- owner: {{ schema.owner }}
|
||||||
|
{% endif %}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
|
- postgres_database: postgresql-db-{{ name }}
|
||||||
|
{% if schema.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ schema.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if schema.get('owner') %}
|
||||||
|
- postgres_user: postgresql-user-{{ schema.owner }}
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if db.extensions is defined %}
|
{% for ext_name, ext in db.get('extensions', dict()).items() %}
|
||||||
{% for ext, ext_args in db.extensions.items() %}
|
postgresql-ext-{{ ext_name }}-for-db-{{ name }}:
|
||||||
postgresql-ext-{{ ext }}-for-db-{{ name }}:
|
{% if ext.get('ensure', 'present') == 'absent' %}
|
||||||
|
postgres_extension.absent:
|
||||||
|
- name: {{ ext_name }}
|
||||||
|
- user: {{ ext.get('runas', postgres.user) }}
|
||||||
|
{% if ext.get('user') %}
|
||||||
|
- db_user: {{ ext.user }}
|
||||||
|
{% endif %}
|
||||||
|
- require:
|
||||||
|
- service: postgresql-running
|
||||||
|
{% else %}
|
||||||
postgres_extension.present:
|
postgres_extension.present:
|
||||||
- name: {{ ext }}
|
- name: {{ ext_name }}
|
||||||
- user: {{ db.get('runas', postgres.user) }}
|
- user: {{ ext.get('runas', postgres.user) }}
|
||||||
|
{% if ext.get('user') %}
|
||||||
|
- db_user: {{ ext.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if ext.get('version') %}
|
||||||
|
- ext_version: {{ ext.version }}
|
||||||
|
{% endif %}
|
||||||
|
{% if ext.get('schema') %}
|
||||||
|
- schema: {{ ext.schema }}
|
||||||
|
{% endif %}
|
||||||
- maintenance_db: {{ name }}
|
- maintenance_db: {{ name }}
|
||||||
{% if ext_args is not none %}
|
|
||||||
{% for arg, value in ext_args.items() %}
|
|
||||||
- {{ arg }}: {{ value }}
|
|
||||||
{% endfor %}
|
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
{% endif %}
|
- postgres_database: postgresql-db-{{ name }}
|
||||||
|
{% if ext.get('user') %}
|
||||||
|
- postgres_user: postgresql-user-{{ ext.user }}
|
||||||
|
{% endif %}
|
||||||
|
{% if ext.get('schema') %}
|
||||||
|
- postgres_schema: postgresql-schema-{{ ext.schema }}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
{% import_yaml "postgres/defaults.yaml" as defaults %}
|
{% import_yaml "postgres/defaults.yaml" as defaults %}
|
||||||
{% import_yaml "postgres/osmap.yaml" as osmap %}
|
{% import_yaml "postgres/osmap.yaml" as osmap %}
|
||||||
{% import_yaml "postgres/codenamemap.yaml" as codemap %}
|
{% import_yaml "postgres/codenamemap.yaml" as oscodenamemap %}
|
||||||
|
{% import_yaml "postgres/osfingermap.yaml" as osfingermap %}
|
||||||
|
|
||||||
{# get the settings for the os_family grain #}
|
{% set _postgres = salt['grains.filter_by'](
|
||||||
{% set osfam = salt['grains.filter_by'](osmap, grain='os_family') or {} %}
|
osmap,
|
||||||
{# get the settings for the oscodename grain, os_family data will override
|
grain='os_family',
|
||||||
oscodename data #}
|
merge=salt['grains.filter_by'](
|
||||||
{% set oscode = salt['grains.filter_by'](codemap,
|
oscodenamemap,
|
||||||
grain='oscodename',
|
grain='oscodename',
|
||||||
merge=osfam) or {} %}
|
merge=salt['grains.filter_by'](
|
||||||
|
osfingermap,
|
||||||
|
grain='osfinger',
|
||||||
|
merge=salt['pillar.get']('postgres', {})
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) %}
|
||||||
|
|
||||||
{# merge the os family/codename specific data over the defaults #}
|
{% do defaults.postgres.update(_postgres) %}
|
||||||
{% do defaults.postgres.update(oscode) %}
|
|
||||||
|
|
||||||
{# merge the pillar:lookup dict into the defaults/os specific dict #}
|
{% set postgres = defaults.postgres %}
|
||||||
{% set lookup = salt['pillar.get']('postgres:lookup',
|
|
||||||
default=defaults.postgres,
|
|
||||||
merge=True) %}
|
|
||||||
|
|
||||||
{# merge the actual postgres pillar into the above combined dict #}
|
|
||||||
{% set postgres = salt['pillar.get']('postgres', default=lookup, merge=True) %}
|
|
||||||
|
|||||||
1
postgres/osfingermap.yaml
Normal file
1
postgres/osfingermap.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -1,29 +1,34 @@
|
|||||||
RedHat:
|
RedHat:
|
||||||
initdb_user: postgres
|
|
||||||
commands:
|
|
||||||
initdb: initdb
|
|
||||||
pkg: postgresql-server
|
pkg: postgresql-server
|
||||||
pkg_client: postgresql
|
pkg_client: postgresql
|
||||||
pkg_repo: pgdg94
|
pkg_repo: pgdg94
|
||||||
repo_baseurl: http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch
|
repo_baseurl: http://yum.postgresql.org/9.4/redhat/rhel-$releasever-$basearch
|
||||||
|
prepare_cluster:
|
||||||
|
test: test -f /var/lib/pgsql/data/PG_VERSION
|
||||||
|
env: {}
|
||||||
|
{% if grains['os_family'] == 'RedHat' %}
|
||||||
|
{% if grains['osmajorrelease'] >= 7 %}
|
||||||
|
user: root
|
||||||
|
command: postgresql-setup initdb
|
||||||
|
{% else %}
|
||||||
|
user: postgres
|
||||||
|
command: initdb -D /var/lib/pgsql/data
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
Arch:
|
Arch:
|
||||||
conf_dir: /var/lib/postgres/data
|
conf_dir: /var/lib/postgres/data
|
||||||
data_dir: /var/lib/postgres/data
|
prepare_cluster:
|
||||||
initdb_user: postgres
|
user: postgres
|
||||||
initdb_args: --locale en_US.UTF8 -E UTF8
|
command: initdb -D /var/lib/postgresql/data
|
||||||
commands:
|
test: test -f /var/lib/postgres/data/PG_VERSION
|
||||||
initdb: initdb
|
env: {}
|
||||||
pkg_client: postgresql
|
pkg_client: postgresql
|
||||||
pkg_dev: postgresql
|
pkg_dev: postgresql
|
||||||
Debian:
|
Debian:
|
||||||
pkg_repo_file: /etc/apt/sources.list.d/pgdg.list
|
pkg_repo_file: /etc/apt/sources.list.d/pgdg.list
|
||||||
pkg_dev: postgresql-server-dev-all
|
pkg_dev: postgresql-server-dev-all
|
||||||
pkg_libpq_dev: libpq-dev
|
pkg_libpq_dev: libpq-dev
|
||||||
initdb: False
|
|
||||||
Suse:
|
Suse:
|
||||||
initdb_user: postgres
|
|
||||||
commands:
|
|
||||||
initdb: initdb
|
|
||||||
pkg: postgresql-server
|
pkg: postgresql-server
|
||||||
pkg_client: postgresql
|
pkg_client: postgresql
|
||||||
FreeBSD:
|
FreeBSD:
|
||||||
|
|||||||
Reference in New Issue
Block a user