mirror of
https://github.com/saltstack-formulas/postgres-formula.git
synced 2025-04-16 09:40:26 +00:00
Merge pull request #191 from noelmcloughlin/postgresApp
PostgresApp and Homebrew Postgres on MacOS
This commit is contained in:
commit
8031f745c4
15 changed files with 253 additions and 31 deletions
15
README.rst
15
README.rst
|
@ -17,12 +17,12 @@ Available states
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Installs and configures both PostgreSQL server and client with creation of various DB objects in
|
Installs and configures both PostgreSQL server and client with creation of various DB objects in
|
||||||
the cluster.
|
the cluster. This state applies to both Linux and MacOS.
|
||||||
|
|
||||||
``postgres.client``
|
``postgres.client``
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Installs the PostgreSQL client binaries and libraries.
|
Installs the PostgreSQL client binaries and libraries on Linux.
|
||||||
|
|
||||||
``postgres.manage``
|
``postgres.manage``
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -33,18 +33,18 @@ See ``pillar.example`` file for details.
|
||||||
``postgres.python``
|
``postgres.python``
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Installs the PostgreSQL adapter for Python.
|
Installs the PostgreSQL adapter for Python on Linux.
|
||||||
|
|
||||||
``postgres.server``
|
``postgres.server``
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Installs the PostgreSQL server package, prepares the DB cluster and starts the server using
|
Installs the PostgreSQL server package on Linux, prepares the DB cluster and starts the server using
|
||||||
packaged init script, job or unit.
|
packaged init script, job or unit.
|
||||||
|
|
||||||
``postgres.server.image``
|
``postgres.server.image``
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Installs the PostgreSQL server package, prepares the DB cluster and starts the server by issuing
|
Installs the PostgreSQL server package on Linux, prepares the DB cluster and starts the server by issuing
|
||||||
raw ``pg_ctl`` command. The ``postgres:bake_image`` Pillar toggles this behaviour. For example:
|
raw ``pg_ctl`` command. The ``postgres:bake_image`` Pillar toggles this behaviour. For example:
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
@ -77,12 +77,15 @@ The state relies on the ``postgres:use_upstream_repo`` Pillar value which could
|
||||||
|
|
||||||
* ``True`` (default): adds the upstream repository to install packages from
|
* ``True`` (default): adds the upstream repository to install packages from
|
||||||
* ``False``: makes sure that the repository configuration is absent
|
* ``False``: makes sure that the repository configuration is absent
|
||||||
|
* ``'postgresapp'`` (MacOS) uses upstream PostgresApp package repository.
|
||||||
|
* ``'homebrew'`` (MacOS) uses Homebrew postgres
|
||||||
|
|
||||||
The ``postgres:version`` Pillar controls which version of the PostgreSQL packages should be
|
The ``postgres:version`` Pillar controls which version of the PostgreSQL packages should be
|
||||||
installed from the upstream repository. Defaults to ``9.5``.
|
installed from the upstream Linux repository. Defaults to ``9.5``.
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
=======
|
=======
|
||||||
|
The postgres state was tested on MacOS (El Capitan 10.11.6)
|
||||||
|
|
||||||
Testing is done with the ``kitchen-salt``.
|
Testing is done with the ``kitchen-salt``.
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,11 @@ postgres:
|
||||||
# Version to install from upstream repository (if upstream_repo: True)
|
# Version to install from upstream repository (if upstream_repo: True)
|
||||||
version: '9.6'
|
version: '9.6'
|
||||||
|
|
||||||
|
### MACOS
|
||||||
|
# Set to 'postgresapp' OR 'homebrew' for MacOS
|
||||||
|
#use_upstream_repo: 'postgresapp'
|
||||||
|
#use_upstream_repo: 'homebrew'
|
||||||
|
|
||||||
# PACKAGE
|
# PACKAGE
|
||||||
# These pillars are typically never required.
|
# These pillars are typically never required.
|
||||||
# pkg: 'postgresql'
|
# pkg: 'postgresql'
|
||||||
|
@ -14,11 +19,15 @@ postgres:
|
||||||
- postgresql-contrib
|
- postgresql-contrib
|
||||||
- postgresql-plpython
|
- postgresql-plpython
|
||||||
|
|
||||||
|
|
||||||
#'Alternatives system' priority incremental. 0 disables feature.
|
#'Alternatives system' priority incremental. 0 disables feature.
|
||||||
linux:
|
linux:
|
||||||
altpriority: 30
|
altpriority: 30
|
||||||
|
|
||||||
|
# macos limits
|
||||||
|
limits:
|
||||||
|
soft: 64000
|
||||||
|
hard: 64000
|
||||||
|
|
||||||
# POSTGRES
|
# POSTGRES
|
||||||
# Append the lines under this item to your postgresql.conf file.
|
# Append the lines under this item to your postgresql.conf file.
|
||||||
# Pay attention to indent exactly with 4 spaces for all lines.
|
# Pay attention to indent exactly with 4 spaces for all lines.
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
{%- if postgres.use_upstream_repo %}
|
{%- if postgres.use_upstream_repo == true %}
|
||||||
include:
|
include:
|
||||||
- postgres.upstream
|
- postgres.upstream
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
@ -16,7 +16,7 @@ include:
|
||||||
postgresql-client-libs:
|
postgresql-client-libs:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs: {{ pkgs }}
|
- pkgs: {{ pkgs }}
|
||||||
{%- if postgres.use_upstream_repo %}
|
{%- if postgres.use_upstream_repo == true %}
|
||||||
- refresh: True
|
- refresh: True
|
||||||
- require:
|
- require:
|
||||||
- pkgrepo: postgresql-repo
|
- pkgrepo: postgresql-repo
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{# use upstream version if configured #}
|
{# use upstream version if configured #}
|
||||||
{% if repo.use_upstream_repo %}
|
{% if repo.use_upstream_repo == true %}
|
||||||
{% set version = repo.version %}
|
{% set version = repo.version %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
#}
|
#}
|
||||||
|
|
||||||
{# use upstream version if configured #}
|
{# use upstream version if configured #}
|
||||||
{% if repo.use_upstream_repo %}
|
{% if repo.use_upstream_repo == true %}
|
||||||
{% set version = repo.version %}
|
{% set version = repo.version %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@ postgres:
|
||||||
pkg_dev: postgresql-devel
|
pkg_dev: postgresql-devel
|
||||||
pkg_libpq_dev: postgresql-libs
|
pkg_libpq_dev: postgresql-libs
|
||||||
python: python-psycopg2
|
python: python-psycopg2
|
||||||
|
userhomes: /home
|
||||||
|
systemuser:
|
||||||
user: postgres
|
user: postgres
|
||||||
group: postgres
|
group: postgres
|
||||||
|
|
||||||
|
@ -21,6 +23,21 @@ postgres:
|
||||||
conf_dir: /var/lib/pgsql/data
|
conf_dir: /var/lib/pgsql/data
|
||||||
postgresconf: ""
|
postgresconf: ""
|
||||||
|
|
||||||
|
macos:
|
||||||
|
archive: postgres.dmg
|
||||||
|
tmpdir: /tmp/postgrestmp
|
||||||
|
postgresapp:
|
||||||
|
#See: https://github.com/PostgresApp/PostgresApp/releases/
|
||||||
|
url: https://github.com/PostgresApp/PostgresApp/releases/download/v2.1.1/Postgres-2.1.1.dmg
|
||||||
|
sum: sha256=ac0656b522a58fd337931313f09509c09610c4a6078fe0b8e469e69af1e1750b
|
||||||
|
homebrew:
|
||||||
|
url:
|
||||||
|
sum:
|
||||||
|
dl:
|
||||||
|
opts: -s -L
|
||||||
|
interval: 60
|
||||||
|
retries: 2
|
||||||
|
|
||||||
pg_hba.conf: salt://postgres/templates/pg_hba.conf.j2
|
pg_hba.conf: salt://postgres/templates/pg_hba.conf.j2
|
||||||
acls:
|
acls:
|
||||||
# "local" is for Unix domain socket connections only
|
# "local" is for Unix domain socket connections only
|
||||||
|
|
|
@ -1,13 +1,59 @@
|
||||||
{% from "postgres/map.jinja" import postgres with context %}
|
{% from "postgres/map.jinja" import postgres with context %}
|
||||||
|
|
||||||
{% if postgres.pkg_dev %}
|
{% if grains.os not in ('Windows', 'MacOS',) %}
|
||||||
|
|
||||||
|
{% if postgres.pkg_dev %}
|
||||||
install-postgres-dev-package:
|
install-postgres-dev-package:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- name: {{ postgres.pkg_dev }}
|
- name: {{ postgres.pkg_dev }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if postgres.pkg_libpq_dev %}
|
{% if postgres.pkg_libpq_dev %}
|
||||||
install-postgres-libpq-dev:
|
install-postgres-libpq-dev:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- name: {{ postgres.pkg_libpq_dev }}
|
- name: {{ postgres.pkg_libpq_dev }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if grains.os == 'MacOS' %}
|
||||||
|
|
||||||
|
# Darwin maxfiles limits
|
||||||
|
{% if postgres.limits.soft or postgres.limits.hard %}
|
||||||
|
|
||||||
|
postgres_maxfiles_limits_conf:
|
||||||
|
file.managed:
|
||||||
|
- name: /Library/LaunchDaemons/limit.maxfiles.plist
|
||||||
|
- source: salt://postgres/templates/limit.maxfiles.plist
|
||||||
|
- context:
|
||||||
|
soft_limit: {{ postgres.limits.soft or postgres.limits.hard }}
|
||||||
|
hard_limit: {{ postgres.limits.hard or postgres.limits.soft }}
|
||||||
|
- group: {{ postgres.group }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if postgres.use_upstream_repo == 'postgresapp' %}
|
||||||
|
# Shortcut for PostgresApp
|
||||||
|
postgres-desktop-shortcut-clean:
|
||||||
|
file.absent:
|
||||||
|
- name: '{{ postgres.userhomes }}/{{ postgres.user }}/Desktop/Postgres ({{ postgres.use_upstream_repo }})'
|
||||||
|
- require_in:
|
||||||
|
- file: postgres-desktop-shortcut-add
|
||||||
|
|
||||||
|
postgres-desktop-shortcut-add:
|
||||||
|
file.managed:
|
||||||
|
- name: /tmp/mac_shortcut.sh
|
||||||
|
- source: salt://postgres/templates/mac_shortcut.sh
|
||||||
|
- mode: 755
|
||||||
|
- template: jinja
|
||||||
|
- context:
|
||||||
|
user: {{ postgres.user }}
|
||||||
|
homes: {{ postgres.userhomes }}
|
||||||
|
cmd.run:
|
||||||
|
- name: '/tmp/mac_shortcut.sh "Postgres ({{ postgres.use_upstream_repo }})"'
|
||||||
|
- runas: {{ postgres.user }}
|
||||||
|
- require:
|
||||||
|
- file: postgres-desktop-shortcut-add
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
|
|
||||||
include:
|
include:
|
||||||
|
{% if grains.os == 'MacOS' %}
|
||||||
|
- postgres.macos
|
||||||
|
{% else %}
|
||||||
- postgres.server
|
- postgres.server
|
||||||
- postgres.client
|
- postgres.client
|
||||||
- postgres.manage
|
- postgres.manage
|
||||||
|
{% endif %}
|
||||||
|
|
10
postgres/macos/init.sls
Normal file
10
postgres/macos/init.sls
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{% from "postgres/map.jinja" import postgres with context %}
|
||||||
|
|
||||||
|
include:
|
||||||
|
{% if postgres.use_upstream_repo == 'postgresapp' %}
|
||||||
|
- postgres.macos.postgresapp
|
||||||
|
{% elif postgres.use_upstream_repo == 'homebrew' %}
|
||||||
|
- postgres.server
|
||||||
|
- postgres.client
|
||||||
|
{% endif %}
|
||||||
|
- postgres.dev
|
64
postgres/macos/postgresapp.sls
Normal file
64
postgres/macos/postgresapp.sls
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{% from "postgres/map.jinja" import postgres as pg with context %}
|
||||||
|
|
||||||
|
# Cleanup first
|
||||||
|
pg-remove-prev-archive:
|
||||||
|
file.absent:
|
||||||
|
- name: '{{ pg.macos.tmpdir }}/{{ pg.macos.archive }}'
|
||||||
|
- require_in:
|
||||||
|
- pg-extract-dirs
|
||||||
|
|
||||||
|
pg-extract-dirs:
|
||||||
|
file.directory:
|
||||||
|
- names:
|
||||||
|
- '{{ pg.macos.tmpdir }}'
|
||||||
|
- makedirs: True
|
||||||
|
- clean: True
|
||||||
|
- require_in:
|
||||||
|
- pg-download-archive
|
||||||
|
|
||||||
|
pg-download-archive:
|
||||||
|
pkg.installed:
|
||||||
|
- name: curl
|
||||||
|
cmd.run:
|
||||||
|
- name: curl {{ pg.macos.dl.opts }} -o '{{ pg.macos.tmpdir }}/{{ pg.macos.archive }}' {{ pg.macos.postgresapp.url }}
|
||||||
|
{% if grains['saltversioninfo'] >= [2017, 7, 0] %}
|
||||||
|
- retry:
|
||||||
|
attempts: {{ pg.macos.dl.retries }}
|
||||||
|
interval: {{ pg.macos.dl.interval }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{%- if pg.macos.postgresapp.sum %}
|
||||||
|
pg-check-archive-hash:
|
||||||
|
module.run:
|
||||||
|
- name: file.check_hash
|
||||||
|
- path: '{{ pg.macos.tmpdir }}/{{ pg.macos.archive }}'
|
||||||
|
- file_hash: {{ pg.macos.postgresapp.sum }}
|
||||||
|
- onchanges:
|
||||||
|
- cmd: pg-download-archive
|
||||||
|
- require_in:
|
||||||
|
- archive: pg-package-install
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
|
pg-package-install:
|
||||||
|
macpackage.installed:
|
||||||
|
- name: '{{ pg.macos.tmpdir }}/{{ pg.macos.archive }}'
|
||||||
|
- store: True
|
||||||
|
- dmg: True
|
||||||
|
- app: True
|
||||||
|
- force: True
|
||||||
|
- allow_untrusted: True
|
||||||
|
- onchanges:
|
||||||
|
- cmd: pg-download-archive
|
||||||
|
- require_in:
|
||||||
|
- file: pg-package-install
|
||||||
|
- file: pg-remove-archive
|
||||||
|
file.append:
|
||||||
|
- name: {{ pg.userhomes }}/{{ pg.user }}/.bash_profile
|
||||||
|
- text: 'export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin'
|
||||||
|
|
||||||
|
pg-remove-archive:
|
||||||
|
file.absent:
|
||||||
|
- name: '{{ pg.macos.tmpdir }}'
|
||||||
|
- onchanges:
|
||||||
|
- macpackage: pg-package-install
|
||||||
|
|
|
@ -33,7 +33,7 @@ RedHat:
|
||||||
gpgcheck: 1
|
gpgcheck: 1
|
||||||
gpgkey: 'https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-{{ release }}'
|
gpgkey: 'https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-{{ release }}'
|
||||||
|
|
||||||
{% if repo.use_upstream_repo %}
|
{% if repo.use_upstream_repo == true %}
|
||||||
|
|
||||||
{% set data_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
|
{% set data_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ Suse:
|
||||||
gpgcheck: 1
|
gpgcheck: 1
|
||||||
gpgautoimport: True
|
gpgautoimport: True
|
||||||
|
|
||||||
{% if repo.use_upstream_repo %}
|
{% if repo.use_upstream_repo == true %}
|
||||||
{# Pillars needed are 'use_upstream_repo: True' and 'version: n.n'. #}
|
{# Pillars needed are 'use_upstream_repo: True' and 'version: n.n'. #}
|
||||||
{# Avoid setting package names as pillars, as may corrupt postgres. #}
|
{# Avoid setting package names as pillars, as may corrupt postgres. #}
|
||||||
{% set lib_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
|
{% set lib_dir = '/var/lib/pgsql/' ~ repo.version ~ '/data' %}
|
||||||
|
@ -133,18 +133,26 @@ Suse:
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{%- if grains.os == 'MacOS' %}
|
||||||
|
## jinja check avoids rendering noise/failure on Linux
|
||||||
MacOS:
|
MacOS:
|
||||||
service: postgresql
|
{%- if repo.use_upstream_repo == 'homebrew' %}
|
||||||
|
service: homebrew.mxcl.postgresql
|
||||||
|
{%- elif repo.use_upstream_repo == 'postgresapp' %}
|
||||||
|
service: com.postgresapp.Postgres2
|
||||||
|
{%- endif %}
|
||||||
pkg: postgresql
|
pkg: postgresql
|
||||||
pkg_client:
|
pkg_client:
|
||||||
pkg_libpq_dev:
|
pkg_libpq_dev:
|
||||||
conf_dir: /usr/local/var/postgres
|
userhomes: /Users
|
||||||
user: _postgres
|
user: {{ repo.user }}
|
||||||
group: _postgres
|
group: {{ repo.group }}
|
||||||
|
conf_dir: /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
|
||||||
prepare_cluster:
|
prepare_cluster:
|
||||||
command: initdb -D /usr/local/var/postgres/
|
command: initdb -D /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}
|
||||||
test: test -f /usr/local/var/postgres/PG_VERSION
|
test: test -f /Users/{{ repo.user }}/Library/AppSupport/postgres_{{ repo.use_upstream_repo }}/PG_VERSION
|
||||||
user: _postgres
|
user: {{ repo.user }}
|
||||||
group: _postgres
|
group: {{ repo.group }}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
# vim: ft=sls
|
# vim: ft=sls
|
||||||
|
|
|
@ -8,4 +8,12 @@ use_upstream_repo: {{ salt['pillar.get']('postgres:use_upstream_repo',
|
||||||
version: {{ salt['pillar.get']('postgres:version',
|
version: {{ salt['pillar.get']('postgres:version',
|
||||||
defaults.postgres.version) }}
|
defaults.postgres.version) }}
|
||||||
|
|
||||||
|
#Early lookup for system user on MacOS
|
||||||
|
{% if grains.os == 'MacOS' %}
|
||||||
|
{% set sysuser = salt['pillar.get']('postgres.user') or salt['cmd.run']("stat -f '%Su' /dev/console") %}
|
||||||
|
{% set sysgroup = salt['pillar.get']('postgres.group') or salt['cmd.run']("stat -f '%Sg' /dev/console") %}
|
||||||
|
user: {{ sysuser }}
|
||||||
|
group: {{ sysgroup }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
# vim: ft=sls
|
# vim: ft=sls
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
{%- if postgres.bake_image %}
|
{%- if postgres.bake_image %}
|
||||||
{%- do includes.append('postgres.server.image') %}
|
{%- do includes.append('postgres.server.image') %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if postgres.use_upstream_repo -%}
|
{%- if postgres.use_upstream_repo == true -%}
|
||||||
{%- do includes.append('postgres.upstream') %}
|
{%- do includes.append('postgres.upstream') %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
@ -18,14 +18,25 @@ include:
|
||||||
postgresql-server:
|
postgresql-server:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- pkgs: {{ pkgs }}
|
- pkgs: {{ pkgs }}
|
||||||
{%- if postgres.use_upstream_repo %}
|
{%- if postgres.use_upstream_repo == true %}
|
||||||
- refresh: True
|
- refresh: True
|
||||||
- require:
|
- require:
|
||||||
- pkgrepo: postgresql-repo
|
- pkgrepo: postgresql-repo
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
{%- if grains.os == 'MacOS' %}
|
||||||
|
#Register as Launchd LaunchAgent for system users
|
||||||
|
- require_in:
|
||||||
|
- file: postgresql-server
|
||||||
|
file.managed:
|
||||||
|
- name: /Library/LaunchAgents/{{ postgres.service }}.plist
|
||||||
|
- source: /usr/local/opt/postgres/{{ postgres.service }}.plist
|
||||||
|
- group: wheel
|
||||||
|
- require_in:
|
||||||
|
- service: postgresql-running
|
||||||
|
{%- else %}
|
||||||
|
|
||||||
# Alternatives system. Make server binaries available in $PATH
|
# Alternatives system. Make server binaries available in $PATH
|
||||||
{%- if 'bin_dir' in postgres and postgres.linux.altpriority %}
|
{%- if 'bin_dir' in postgres and postgres.linux.altpriority %}
|
||||||
{%- for bin in postgres.server_bins %}
|
{%- for bin in postgres.server_bins %}
|
||||||
{%- set path = salt['file.join'](postgres.bin_dir, bin) %}
|
{%- set path = salt['file.join'](postgres.bin_dir, bin) %}
|
||||||
|
|
||||||
|
@ -41,6 +52,8 @@ postgresql-server:
|
||||||
- cmd: postgresql-cluster-prepared
|
- cmd: postgresql-cluster-prepared
|
||||||
|
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
postgresql-cluster-prepared:
|
postgresql-cluster-prepared:
|
||||||
|
@ -59,6 +72,12 @@ postgresql-config-dir:
|
||||||
- name: {{ postgres.conf_dir }}
|
- name: {{ postgres.conf_dir }}
|
||||||
- user: {{ postgres.user }}
|
- user: {{ postgres.user }}
|
||||||
- group: {{ postgres.group }}
|
- group: {{ postgres.group }}
|
||||||
|
- dir_mode: 775
|
||||||
|
- force: True
|
||||||
|
- file_mode: 644
|
||||||
|
- recurse:
|
||||||
|
- user
|
||||||
|
- group
|
||||||
- makedirs: True
|
- makedirs: True
|
||||||
- require:
|
- require:
|
||||||
- cmd: postgresql-cluster-prepared
|
- cmd: postgresql-cluster-prepared
|
||||||
|
@ -134,7 +153,9 @@ postgresql-running:
|
||||||
service.running:
|
service.running:
|
||||||
- name: {{ postgres.service }}
|
- name: {{ postgres.service }}
|
||||||
- enable: True
|
- enable: True
|
||||||
|
{% if grains.os not in ('MacOS',) %}
|
||||||
- reload: True
|
- reload: True
|
||||||
|
{% endif %}
|
||||||
- watch:
|
- watch:
|
||||||
- file: postgresql-pg_hba
|
- file: postgresql-pg_hba
|
||||||
|
|
||||||
|
|
21
postgres/templates/limit.maxfiles.plist
Normal file
21
postgres/templates/limit.maxfiles.plist
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
||||||
|
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>limit.maxfiles</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>/bin/launchctl</string>
|
||||||
|
<string>limit</string>
|
||||||
|
<string>maxfiles</string>
|
||||||
|
<string>{{ soft_limit }}</string>
|
||||||
|
<string>{{ hard_limit }}</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
<key>ServiceIPC</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
8
postgres/templates/mac_shortcut.sh
Executable file
8
postgres/templates/mac_shortcut.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
shortcutName='${1}'
|
||||||
|
app="postgres.app"
|
||||||
|
Source="/Applications/$app"
|
||||||
|
Destination="{{ homes }}/{{ user }}/Desktop/${shortcutName}"
|
||||||
|
/usr/bin/osascript -e "tell application \"Finder\" to make alias file to POSIX file \"$Source\" at POSIX file \"$Destination\""
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
{%- if 'pkg_repo' in postgres -%}
|
{%- if 'pkg_repo' in postgres -%}
|
||||||
|
|
||||||
{%- if postgres.use_upstream_repo -%}
|
{%- if postgres.use_upstream_repo == true -%}
|
||||||
|
|
||||||
# Add upstream repository for your distro
|
# Add upstream repository for your distro
|
||||||
postgresql-repo:
|
postgresql-repo:
|
||||||
|
@ -25,9 +25,11 @@ postgresql-repo:
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
|
|
||||||
# Notify that we don't manage this distro
|
# Notify that we don't manage this distro
|
||||||
|
{% if grains.os not in ('Windows', 'MacOS',) %}
|
||||||
postgresql-repo:
|
postgresql-repo:
|
||||||
test.show_notification:
|
test.show_notification:
|
||||||
- text: |
|
- text: |
|
||||||
PostgreSQL does not provide package repository for {{ grains['osfinger'] }}
|
PostgreSQL does not provide package repository for {{ grains['osfinger'] }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
Loading…
Add table
Reference in a new issue