From b18f85176ffefafbe91b1ac0c0f7141bb7a59dea Mon Sep 17 00:00:00 2001 From: Francisco Redondo Marchena Date: Wed, 17 Dec 2014 18:02:47 +0000 Subject: Add databases stratum to system and add configuration and services for postgres --- .../etc/systemd/system/postgres-server.service | 26 ++++++++++++++++ .../etc/systemd/system/postgres-setup.service | 11 +++++++ openstack/manifest | 3 ++ openstack/usr/share/openstack/postgres-setup | 35 ++++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 openstack/etc/systemd/system/postgres-server.service create mode 100644 openstack/etc/systemd/system/postgres-setup.service create mode 100644 openstack/usr/share/openstack/postgres-setup (limited to 'openstack') diff --git a/openstack/etc/systemd/system/postgres-server.service b/openstack/etc/systemd/system/postgres-server.service new file mode 100644 index 00000000..6ee25e98 --- /dev/null +++ b/openstack/etc/systemd/system/postgres-server.service @@ -0,0 +1,26 @@ +[Unit] +Description=PostgreSQL database server +Requires=postgres-setup.service +After=postgres-setup.service + +[Service] +Type=forking +TimeoutSec=120 +User=postgres +Group=postgres + +Environment=PGROOT=/var/lib/pgsql + +SyslogIdentifier=postgres +PIDFile=/var/lib/pgsql/data/postmaster.pid + +ExecStart= /usr/bin/pg_ctl -s -D ${PGROOT}/data start -w -t 120 +ExecReload=/usr/bin/pg_ctl -s -D ${PGROOT}/data reload +ExecStop= /usr/bin/pg_ctl -s -D ${PGROOT}/data stop -m fast + +# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in +# killing Postgres, so adjust it downward +OOMScoreAdjust=-200 + +[Install] +WantedBy=multi-user.target diff --git a/openstack/etc/systemd/system/postgres-setup.service b/openstack/etc/systemd/system/postgres-setup.service new file mode 100644 index 00000000..281d0d77 --- /dev/null +++ b/openstack/etc/systemd/system/postgres-setup.service @@ -0,0 +1,11 @@ +[Unit] +Description=Run postgres-setup (once) +After=network.target + +[Service] +Type=oneshot +ExecStart=/usr/share/openstack/postgres-setup +Restart=no + +[Install] +WantedBy=multi-user.target diff --git a/openstack/manifest b/openstack/manifest index 404acc23..a2d79412 100644 --- a/openstack/manifest +++ b/openstack/manifest @@ -169,3 +169,6 @@ 0100755 0 0 /usr/share/openstack/openstack-neutron-network-configuration-for-one-node 0100644 0 0 /etc/systemd/system/openstack-neutron-network-configuration-one-node.service 0100644 0 0 /etc/systemd/system/openvswitch-initialize-db.service +0100755 0 0 /usr/share/openstack/postgres-setup +0100644 0 0 /etc/systemd/system/postgres-setup.service +0100644 0 0 /etc/systemd/system/postgres-server.service diff --git a/openstack/usr/share/openstack/postgres-setup b/openstack/usr/share/openstack/postgres-setup new file mode 100644 index 00000000..36d89d97 --- /dev/null +++ b/openstack/usr/share/openstack/postgres-setup @@ -0,0 +1,35 @@ +#!/bin/sh +# +# Copyright (C) 2014 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +set -xe + +# Create postgres directories +install -dm700 /var/lib/pgsql/data +install -dm755 /var/run/postgresql + +# Create required system users and groups +getent group postgress >/dev/null || groupadd -r -g 41 postgres +getent passwd neutron >/dev/null || \ + useradd --uid 41 -r -g postgres -d /var/lib/pgsql -s /sbin/nologin \ + -c "PostgreSQL Server" postgres + +chown -R postgres:postgres /var/lib/pgsql /var/run/postgresql + +test -d /var/lib/pgsql/data/base || sudo -u postgres pg_ctl -D /var/lib/pgsql/data initdb + + +exit 0 -- cgit v1.2.1