mirror of
https://github.com/saltstack-formulas/postgres-formula.git
synced 2025-04-16 17:50:27 +00:00
137 lines
3.9 KiB
ReStructuredText
137 lines
3.9 KiB
ReStructuredText
========
|
|
postgres
|
|
========
|
|
|
|
.. note::
|
|
|
|
See the full `Salt Formulas installation and usage instructions
|
|
<http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>`_.
|
|
|
|
Available states
|
|
================
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
``postgres``
|
|
------------
|
|
|
|
Installs and configures both PostgreSQL server and client with creation of various DB objects in
|
|
the cluster. This state applies to both Linux and MacOS.
|
|
|
|
``postgres.client``
|
|
-------------------
|
|
|
|
Installs the PostgreSQL client binaries and libraries on Linux.
|
|
|
|
``postgres.manage``
|
|
-------------------
|
|
|
|
Creates such DB objects as: users, tablespaces, databases, schemas and extensions.
|
|
See ``pillar.example`` file for details.
|
|
|
|
``postgres.python``
|
|
----------------------
|
|
|
|
Installs the PostgreSQL adapter for Python on Linux.
|
|
|
|
``postgres.server``
|
|
-------------------
|
|
|
|
Installs the PostgreSQL server package on Linux, prepares the DB cluster and starts the server using
|
|
packaged init script, job or unit.
|
|
|
|
``postgres.server.image``
|
|
-------------------------
|
|
|
|
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
|
|
|
|
postgres:
|
|
bake_image: True
|
|
|
|
If set ``True``, then it becomes possible to fully provision PostgreSQL with all supported entities
|
|
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``
|
|
---------------------
|
|
|
|
Configures the PostgreSQL Official (upstream) repository on target system if
|
|
applicable.
|
|
|
|
The state relies on the ``postgres:use_upstream_repo`` Pillar value which could be set as following:
|
|
|
|
* ``True`` (default): adds the upstream repository to install packages from
|
|
* ``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
|
|
installed from the upstream Linux repository. Defaults to ``9.5``.
|
|
|
|
|
|
Removal states
|
|
===============
|
|
|
|
``postgres.dropped``
|
|
--------------------
|
|
|
|
Meta state to remove Postgres software. By default the release installed by formula is targeted only. To target multiple releases, set pillar ``postgres.remove.multiple_releases: True``.
|
|
|
|
``postgres.server.remove``
|
|
------------------------
|
|
|
|
Remove server, lib, and contrib packages. The ``postgres.server.remove`` will retain data by default (no data loss) - set pillar ``postgres.remove.data: True`` to remove data and configuration directories also.
|
|
|
|
``postgres.client.remove``
|
|
------------------------
|
|
|
|
Remove client package.
|
|
|
|
``postgres.dev.remove``
|
|
----------------------
|
|
|
|
Remove development and python packages.
|
|
|
|
|
|
Testing
|
|
=======
|
|
The ``postgres`` state was tested on MacOS (El Capitan 10.11.6), and ``remove`` states on Ubuntu, Centos, and Fedora.
|
|
|
|
Linux testing is done with the ``kitchen-salt``.
|
|
|
|
``kitchen converge``
|
|
--------------------
|
|
|
|
Runs the ``postgres`` main state.
|
|
|
|
``kitchen verify``
|
|
------------------
|
|
|
|
Runs ``serverspec`` tests on the actual instance.
|
|
|
|
``kitchen test``
|
|
----------------
|
|
|
|
Builds and runs tests from scratch.
|
|
|
|
``kitchen login``
|
|
-----------------
|
|
|
|
Gives you ssh to the vagrant machine for manual testing.
|
|
|
|
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et
|