Merge pull request #264 from sticky-note/master
fix(sysrc-svc): workaround *BSD minion indefinitely hanging on start
This commit is contained in:
@@ -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 %}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user