mirror of
https://github.com/saltstack-formulas/postgres-formula.git
synced 2025-04-17 10:10:31 +00:00
fix(sysrc-svc): workaround *BSD minion indefinitely hanging on start
Check https://github.com/saltstack/salt/issues/44848 for further details
This commit is contained in:
parent
29cd2d8a7c
commit
0aa8b4a048
6 changed files with 41 additions and 15 deletions
|
@ -24,7 +24,10 @@ postgres:
|
|||
# These pillars are typically never required.
|
||||
# pkg: 'postgresql'
|
||||
# pkg_client: 'postgresql-client'
|
||||
# service: postgresql
|
||||
# service:
|
||||
# name: 'postgresql'
|
||||
# flags: -w -s -m fast
|
||||
# sysrc: True
|
||||
pkgs_extra:
|
||||
- postgresql-contrib
|
||||
- postgresql-plpython
|
||||
|
|
|
@ -67,7 +67,9 @@ postgres:
|
|||
|
||||
config_backup: '.bak'
|
||||
|
||||
service: postgresql
|
||||
service:
|
||||
name: postgresql
|
||||
sysrc: False
|
||||
|
||||
bake_image: False
|
||||
|
||||
|
|
|
@ -30,11 +30,17 @@ FreeBSD:
|
|||
prepare_cluster:
|
||||
user: *freebsd-user
|
||||
group: *freebsd-group
|
||||
service:
|
||||
flags: -w -s -m fast
|
||||
sysrc: True
|
||||
|
||||
OpenBSD:
|
||||
conf_dir: /var/postgresql/data
|
||||
data_dir: /var/postgresql/data
|
||||
user: _postgresql
|
||||
service:
|
||||
flags: -w -s -m fast
|
||||
sysrc: True
|
||||
|
||||
RedHat:
|
||||
pkg_repo:
|
||||
|
@ -54,7 +60,8 @@ RedHat:
|
|||
pkg_dev: postgresql{{ release }}-devel
|
||||
conf_dir: {{ data_dir }}
|
||||
data_dir: {{ data_dir }}
|
||||
service: postgresql-{{ repo.version }}
|
||||
service:
|
||||
name: postgresql-{{ repo.version }}
|
||||
|
||||
# Alternatives system
|
||||
linux:
|
||||
|
@ -132,7 +139,8 @@ Suse:
|
|||
pkg_libs: postgresql{{ release }}-libs
|
||||
conf_dir: {{ data_dir }}
|
||||
data_dir: {{ data_dir }}
|
||||
service: postgresql-{{ repo.version }}
|
||||
service:
|
||||
name: postgresql-{{ repo.version }}
|
||||
|
||||
# Alternatives system
|
||||
linux:
|
||||
|
@ -175,9 +183,11 @@ Suse:
|
|||
## jinja check avoids rendering noise/failure on Linux
|
||||
MacOS:
|
||||
{%- if repo.use_upstream_repo == 'homebrew' %}
|
||||
service: homebrew.mxcl.postgresql
|
||||
service:
|
||||
name: homebrew.mxcl.postgresql
|
||||
{%- elif repo.use_upstream_repo == 'postgresapp' %}
|
||||
service: com.postgresapp.Postgres2
|
||||
service:
|
||||
name: com.postgresapp.Postgres2
|
||||
{%- endif %}
|
||||
pkg: postgresql
|
||||
pkg_client:
|
||||
|
|
|
@ -24,11 +24,11 @@ postgresql-start:
|
|||
postgresql-enable:
|
||||
cmd.run:
|
||||
{%- if salt['file.file_exists']('/bin/systemctl') %}
|
||||
- name: systemctl enable {{ postgres.service }}
|
||||
- name: systemctl enable {{ postgres.service.name }}
|
||||
{%- elif salt['cmd.which']('chkconfig') %}
|
||||
- name: chkconfig {{ postgres.service }} on
|
||||
- name: chkconfig {{ postgres.service.name }} on
|
||||
{%- elif salt['file.file_exists']('/usr/sbin/update-rc.d') %}
|
||||
- name: update-rc.d {{ service }} defaults
|
||||
- name: update-rc.d {{ postgres.service.name }} defaults
|
||||
{%- else %}
|
||||
# Nothing to do
|
||||
- name: 'true'
|
||||
|
|
|
@ -31,8 +31,8 @@ postgresql-server:
|
|||
- require_in:
|
||||
- file: postgresql-server
|
||||
file.managed:
|
||||
- name: /Library/LaunchAgents/{{ postgres.service }}.plist
|
||||
- source: /usr/local/opt/postgres/{{ postgres.service }}.plist
|
||||
- name: /Library/LaunchAgents/{{ postgres.service.name }}.plist
|
||||
- source: /usr/local/opt/postgres/{{ postgres.service.name }}.plist
|
||||
- group: wheel
|
||||
- require_in:
|
||||
- service: postgresql-running
|
||||
|
@ -261,12 +261,23 @@ postgresql-tablespace-dir-{{ name }}-fcontext:
|
|||
|
||||
{%- if not postgres.bake_image %}
|
||||
|
||||
# Workaround for FreeBSD minion undefinitely hanging on service start
|
||||
# cf. https://github.com/saltstack/salt/issues/44848
|
||||
{% if postgres.service.sysrc %}
|
||||
posgresql-rc-flags:
|
||||
sysrc.managed:
|
||||
- name: {{ postgres.service.name }}_flags
|
||||
- value: "{{ postgres.service.flags }} > /dev/null 2>&1"
|
||||
- watch_in:
|
||||
- service: postgresql-running
|
||||
{% endif %}
|
||||
|
||||
# Start PostgreSQL server using OS init
|
||||
# Note: This is also the target for numerous `watch_in` requisites above, used
|
||||
# for the necessary service restart after changing the relevant configuration files
|
||||
postgresql-running:
|
||||
service.running:
|
||||
- name: {{ postgres.service }}
|
||||
- name: {{ postgres.service.name }}
|
||||
- enable: True
|
||||
|
||||
# Reload the service for changes made to `pg_ident.conf`, except for `MacOS`
|
||||
|
@ -275,7 +286,7 @@ postgresql-running:
|
|||
postgresql-service-reload:
|
||||
module.wait:
|
||||
- name: service.reload
|
||||
- m_name: {{ postgres.service }}
|
||||
- m_name: {{ postgres.service.name }}
|
||||
- require:
|
||||
- service: postgresql-running
|
||||
{%- endif %}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
postgresql-dead:
|
||||
service.dead:
|
||||
- name: {{ postgres.service }}
|
||||
- name: {{ postgres.service.name }}
|
||||
- enable: False
|
||||
|
||||
postgresql-repo-removed:
|
||||
|
@ -81,7 +81,7 @@ postgresql{{ release }}-tablespace-dir-{{ name }}-removed:
|
|||
file.absent:
|
||||
- name: {{ tblspace.directory }}
|
||||
- require:
|
||||
- file: postgresql{{ release }}-dataconf-removed
|
||||
- file: postgresql{{ release }}-dataconf-removed
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue