Merge pull request #298 from litnialex/master
fix(contributing): runnig formula inside container
This commit is contained in:
@@ -83,31 +83,15 @@ packaged init script, job or unit.
|
|||||||
Further information: https://blog.tyk.nu/blog/freebsd-jails-and-sysv-ipc/
|
Further information: https://blog.tyk.nu/blog/freebsd-jails-and-sysv-ipc/
|
||||||
|
|
||||||
|
|
||||||
``postgres.server.image``
|
**Running inside a container** (using Packer, Docker or similar tools), when OS ``init`` process
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
is not available to start the service and enable it on "boot", set pillar value:
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
.. code:: yaml
|
.. code:: yaml
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
bake_image: True
|
bake_image: True
|
||||||
|
|
||||||
If set ``True``, then it becomes possible to fully provision PostgreSQL with all supported entities
|
This toggles starting PostgreSQL daemon by issuing raw ``pg_ctl`` or ``pg_ctlcluster`` command.
|
||||||
from ``postgres.manage`` state during the build ("baking") of AMI / VM / Container images (using
|
|
||||||
Packer, Docker or similar tools), i.e. when OS ``init`` process is not available to start the
|
|
||||||
service and enable it on "boot" of resulting appliance.
|
|
||||||
|
|
||||||
Also it allows to make Docker images with PostgreSQL using functionality being available since Salt
|
|
||||||
2016.11.0 release:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
salt 'minion.with.docker' dockerng.sls_build my-postgres base=centos/systemd mods=postgres
|
|
||||||
|
|
||||||
If a lookup dictionary or Pillar has ``postgres:bake_image`` set ``False`` (this is default), it is
|
|
||||||
equivalent of applying ``postgres.server`` state.
|
|
||||||
|
|
||||||
``postgres.upstream``
|
``postgres.upstream``
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
prepare_cluster:
|
prepare_cluster:
|
||||||
pgcommand: pg_createcluster {{ version }} {{ cluster_name }} -d
|
pgcommand: pg_createcluster {{ version }} {{ cluster_name }} -d
|
||||||
user: root
|
user: root
|
||||||
|
bake_image_run_cmd: pg_ctlcluster {{ version }} {{ cluster_name }} start
|
||||||
|
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ postgres:
|
|||||||
version: '10'
|
version: '10'
|
||||||
pkg: postgresql
|
pkg: postgresql
|
||||||
pkgs_extra: []
|
pkgs_extra: []
|
||||||
|
pkgs_deps: []
|
||||||
pkg_client: postgresql-client
|
pkg_client: postgresql-client
|
||||||
pkg_dev: postgresql-devel
|
pkg_dev: postgresql-devel
|
||||||
pkg_dev_deps: []
|
pkg_dev_deps: []
|
||||||
@@ -76,6 +77,7 @@ postgres:
|
|||||||
sysrc: false
|
sysrc: false
|
||||||
|
|
||||||
bake_image: false
|
bake_image: false
|
||||||
|
bake_image_run_cmd: pg_ctl start
|
||||||
|
|
||||||
fromrepo: ''
|
fromrepo: ''
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Arch:
|
|||||||
pkg_dev: postgresql
|
pkg_dev: postgresql
|
||||||
|
|
||||||
Debian:
|
Debian:
|
||||||
|
pkgs_deps: ['python3-apt']
|
||||||
pkg_repo:
|
pkg_repo:
|
||||||
humanname: PostgreSQL Official Repository
|
humanname: PostgreSQL Official Repository
|
||||||
key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc'
|
key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc'
|
||||||
|
|||||||
@@ -5,20 +5,22 @@
|
|||||||
|
|
||||||
{%- if postgres.bake_image %}
|
{%- if postgres.bake_image %}
|
||||||
|
|
||||||
include:
|
|
||||||
- postgres.server
|
|
||||||
|
|
||||||
# An attempt to start PostgreSQL with `pg_ctl`
|
# An attempt to start PostgreSQL with `pg_ctl`
|
||||||
|
postgresql-running:
|
||||||
postgresql-start:
|
|
||||||
cmd.run:
|
cmd.run:
|
||||||
- name: pg_ctl -D {{ postgres.data_dir }} -l logfile start
|
- name: {{ postgres.bake_image_run_cmd }}
|
||||||
- runas: {{ postgres.user }}
|
- runas: {{ postgres.user }}
|
||||||
- unless:
|
- unless:
|
||||||
- ps -p $(head -n 1 {{ postgres.data_dir }}/postmaster.pid) 2>/dev/null
|
- ps -p $(head -n 1 {{ postgres.data_dir }}/postmaster.pid) 2>/dev/null
|
||||||
- require:
|
- require:
|
||||||
- file: postgresql-pg_hba
|
- file: postgresql-pg_hba
|
||||||
|
|
||||||
|
postgresql-service-reload:
|
||||||
|
module.run:
|
||||||
|
- name: test.true
|
||||||
|
- require:
|
||||||
|
- cmd: postgresql-running
|
||||||
|
|
||||||
# Try to enable PostgreSQL in "manual" way
|
# Try to enable PostgreSQL in "manual" way
|
||||||
|
|
||||||
postgresql-enable:
|
postgresql-enable:
|
||||||
@@ -34,12 +36,6 @@ postgresql-enable:
|
|||||||
- name: 'true'
|
- name: 'true'
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
- require:
|
- require:
|
||||||
- cmd: postgresql-start
|
- cmd: postgresql-running
|
||||||
|
|
||||||
{%- else %}
|
|
||||||
|
|
||||||
postgresql-start:
|
|
||||||
test.show_notification:
|
|
||||||
- text: The 'postgres:bake_image' Pillar is disabled (set to 'False').
|
|
||||||
|
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|||||||
@@ -17,10 +17,17 @@ postgresql-profile:
|
|||||||
- defaults:
|
- defaults:
|
||||||
bin_dir: {{ postgres.bin_dir }}
|
bin_dir: {{ postgres.bin_dir }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
postgresql-pkg-deps:
|
||||||
|
pkg.installed:
|
||||||
|
- pkgs: {{ postgres.pkgs_deps }}
|
||||||
|
|
||||||
# Add upstream repository for your distro
|
# Add upstream repository for your distro
|
||||||
postgresql-repo:
|
postgresql-repo:
|
||||||
pkgrepo.managed:
|
pkgrepo.managed:
|
||||||
{{- format_kwargs(postgres.pkg_repo) }}
|
{{- format_kwargs(postgres.pkg_repo) }}
|
||||||
|
- require:
|
||||||
|
- pkg: postgresql-pkg-deps
|
||||||
|
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user