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:
@@ -24,7 +24,10 @@ postgres:
|
|||||||
# These pillars are typically never required.
|
# These pillars are typically never required.
|
||||||
# pkg: 'postgresql'
|
# pkg: 'postgresql'
|
||||||
# pkg_client: 'postgresql-client'
|
# pkg_client: 'postgresql-client'
|
||||||
# service: postgresql
|
# service:
|
||||||
|
# name: 'postgresql'
|
||||||
|
# flags: -w -s -m fast
|
||||||
|
# sysrc: True
|
||||||
pkgs_extra:
|
pkgs_extra:
|
||||||
- postgresql-contrib
|
- postgresql-contrib
|
||||||
- postgresql-plpython
|
- postgresql-plpython
|
||||||
|
|||||||
@@ -67,7 +67,9 @@ postgres:
|
|||||||
|
|
||||||
config_backup: '.bak'
|
config_backup: '.bak'
|
||||||
|
|
||||||
service: postgresql
|
service:
|
||||||
|
name: postgresql
|
||||||
|
sysrc: False
|
||||||
|
|
||||||
bake_image: False
|
bake_image: False
|
||||||
|
|
||||||
|
|||||||
@@ -30,11 +30,17 @@ FreeBSD:
|
|||||||
prepare_cluster:
|
prepare_cluster:
|
||||||
user: *freebsd-user
|
user: *freebsd-user
|
||||||
group: *freebsd-group
|
group: *freebsd-group
|
||||||
|
service:
|
||||||
|
flags: -w -s -m fast
|
||||||
|
sysrc: True
|
||||||
|
|
||||||
OpenBSD:
|
OpenBSD:
|
||||||
conf_dir: /var/postgresql/data
|
conf_dir: /var/postgresql/data
|
||||||
data_dir: /var/postgresql/data
|
data_dir: /var/postgresql/data
|
||||||
user: _postgresql
|
user: _postgresql
|
||||||
|
service:
|
||||||
|
flags: -w -s -m fast
|
||||||
|
sysrc: True
|
||||||
|
|
||||||
RedHat:
|
RedHat:
|
||||||
pkg_repo:
|
pkg_repo:
|
||||||
@@ -54,7 +60,8 @@ RedHat:
|
|||||||
pkg_dev: postgresql{{ release }}-devel
|
pkg_dev: postgresql{{ release }}-devel
|
||||||
conf_dir: {{ data_dir }}
|
conf_dir: {{ data_dir }}
|
||||||
data_dir: {{ data_dir }}
|
data_dir: {{ data_dir }}
|
||||||
service: postgresql-{{ repo.version }}
|
service:
|
||||||
|
name: postgresql-{{ repo.version }}
|
||||||
|
|
||||||
# Alternatives system
|
# Alternatives system
|
||||||
linux:
|
linux:
|
||||||
@@ -132,7 +139,8 @@ Suse:
|
|||||||
pkg_libs: postgresql{{ release }}-libs
|
pkg_libs: postgresql{{ release }}-libs
|
||||||
conf_dir: {{ data_dir }}
|
conf_dir: {{ data_dir }}
|
||||||
data_dir: {{ data_dir }}
|
data_dir: {{ data_dir }}
|
||||||
service: postgresql-{{ repo.version }}
|
service:
|
||||||
|
name: postgresql-{{ repo.version }}
|
||||||
|
|
||||||
# Alternatives system
|
# Alternatives system
|
||||||
linux:
|
linux:
|
||||||
@@ -175,9 +183,11 @@ Suse:
|
|||||||
## jinja check avoids rendering noise/failure on Linux
|
## jinja check avoids rendering noise/failure on Linux
|
||||||
MacOS:
|
MacOS:
|
||||||
{%- if repo.use_upstream_repo == 'homebrew' %}
|
{%- if repo.use_upstream_repo == 'homebrew' %}
|
||||||
service: homebrew.mxcl.postgresql
|
service:
|
||||||
|
name: homebrew.mxcl.postgresql
|
||||||
{%- elif repo.use_upstream_repo == 'postgresapp' %}
|
{%- elif repo.use_upstream_repo == 'postgresapp' %}
|
||||||
service: com.postgresapp.Postgres2
|
service:
|
||||||
|
name: com.postgresapp.Postgres2
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
pkg: postgresql
|
pkg: postgresql
|
||||||
pkg_client:
|
pkg_client:
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ postgresql-start:
|
|||||||
postgresql-enable:
|
postgresql-enable:
|
||||||
cmd.run:
|
cmd.run:
|
||||||
{%- if salt['file.file_exists']('/bin/systemctl') %}
|
{%- if salt['file.file_exists']('/bin/systemctl') %}
|
||||||
- name: systemctl enable {{ postgres.service }}
|
- name: systemctl enable {{ postgres.service.name }}
|
||||||
{%- elif salt['cmd.which']('chkconfig') %}
|
{%- 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') %}
|
{%- 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 %}
|
{%- else %}
|
||||||
# Nothing to do
|
# Nothing to do
|
||||||
- name: 'true'
|
- name: 'true'
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ postgresql-server:
|
|||||||
- require_in:
|
- require_in:
|
||||||
- file: postgresql-server
|
- file: postgresql-server
|
||||||
file.managed:
|
file.managed:
|
||||||
- name: /Library/LaunchAgents/{{ postgres.service }}.plist
|
- name: /Library/LaunchAgents/{{ postgres.service.name }}.plist
|
||||||
- source: /usr/local/opt/postgres/{{ postgres.service }}.plist
|
- source: /usr/local/opt/postgres/{{ postgres.service.name }}.plist
|
||||||
- group: wheel
|
- group: wheel
|
||||||
- require_in:
|
- require_in:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
@@ -261,12 +261,23 @@ postgresql-tablespace-dir-{{ name }}-fcontext:
|
|||||||
|
|
||||||
{%- if not postgres.bake_image %}
|
{%- 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
|
# Start PostgreSQL server using OS init
|
||||||
# Note: This is also the target for numerous `watch_in` requisites above, used
|
# Note: This is also the target for numerous `watch_in` requisites above, used
|
||||||
# for the necessary service restart after changing the relevant configuration files
|
# for the necessary service restart after changing the relevant configuration files
|
||||||
postgresql-running:
|
postgresql-running:
|
||||||
service.running:
|
service.running:
|
||||||
- name: {{ postgres.service }}
|
- name: {{ postgres.service.name }}
|
||||||
- enable: True
|
- enable: True
|
||||||
|
|
||||||
# Reload the service for changes made to `pg_ident.conf`, except for `MacOS`
|
# Reload the service for changes made to `pg_ident.conf`, except for `MacOS`
|
||||||
@@ -275,7 +286,7 @@ postgresql-running:
|
|||||||
postgresql-service-reload:
|
postgresql-service-reload:
|
||||||
module.wait:
|
module.wait:
|
||||||
- name: service.reload
|
- name: service.reload
|
||||||
- m_name: {{ postgres.service }}
|
- m_name: {{ postgres.service.name }}
|
||||||
- require:
|
- require:
|
||||||
- service: postgresql-running
|
- service: postgresql-running
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
postgresql-dead:
|
postgresql-dead:
|
||||||
service.dead:
|
service.dead:
|
||||||
- name: {{ postgres.service }}
|
- name: {{ postgres.service.name }}
|
||||||
- enable: False
|
- enable: False
|
||||||
|
|
||||||
postgresql-repo-removed:
|
postgresql-repo-removed:
|
||||||
@@ -81,7 +81,7 @@ postgresql{{ release }}-tablespace-dir-{{ name }}-removed:
|
|||||||
file.absent:
|
file.absent:
|
||||||
- name: {{ tblspace.directory }}
|
- name: {{ tblspace.directory }}
|
||||||
- require:
|
- require:
|
||||||
- file: postgresql{{ release }}-dataconf-removed
|
- file: postgresql{{ release }}-dataconf-removed
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user