Merge pull request #264 from sticky-note/master

fix(sysrc-svc): workaround *BSD minion indefinitely hanging on start
This commit is contained in:
Imran Iqbal
2019-05-12 23:24:58 +01:00
committed by GitHub
6 changed files with 41 additions and 15 deletions

View File

@@ -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

View File

@@ -67,7 +67,9 @@ postgres:
config_backup: '.bak' config_backup: '.bak'
service: postgresql service:
name: postgresql
sysrc: False
bake_image: False bake_image: False

View File

@@ -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:

View File

@@ -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'

View File

@@ -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 %}

View File

@@ -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 %}