aboutsummaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-support/postgresql/postgresql/postgresql-init
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openstack/recipes-support/postgresql/postgresql/postgresql-init')
-rw-r--r--meta-openstack/recipes-support/postgresql/postgresql/postgresql-init46
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-openstack/recipes-support/postgresql/postgresql/postgresql-init b/meta-openstack/recipes-support/postgresql/postgresql/postgresql-init
new file mode 100644
index 00000000..d9850dab
--- /dev/null
+++ b/meta-openstack/recipes-support/postgresql/postgresql/postgresql-init
@@ -0,0 +1,46 @@
+#!/bin/sh
+# set -x
+
+PN=postgresql
+CONTROLLER_IP=%CONTROLLER_IP%
+COMPUTE_IP=%COMPUTE_IP%
+DB_USER=%DB_USER%
+DB_PASSWORD=%DB_PASSWORD%
+
+if [ -e /etc/${PN}/PG_VERSION ]; then
+ # the database has already been initialized, return
+ exit 0
+fi
+
+sudo -u postgres initdb -D /etc/${PN}/
+sleep 2
+echo "listen_addresses = '*'" >> /etc/${PN}/postgresql.conf
+echo "host all all ${CONTROLLER_IP}/32 trust" >> /etc/${PN}/pg_hba.conf
+echo "host all all ${COMPUTE_IP}/32 trust" >> /etc/${PN}/pg_hba.conf
+sleep 2
+/etc/init.d/postgresql start
+sleep 10
+
+count=0
+done=0
+while [ $count -le 10 ] && [ $done -eq 0 ]; do
+ sudo -u postgres psql -c "CREATE ROLE ${DB_USER} WITH SUPERUSER LOGIN PASSWORD '${DB_PASSWORD}'" 2> /dev/null
+ if [ $? -ne 0 ]; then
+ echo "[INFO] postgres: failed to create account for ${DB_USER}, trying again"
+ /etc/init.d/postgresql stop
+ sleep 3
+ /etc/init.d/postgresql start
+ sleep 3
+ else
+ echo "[INFO] postgres: created account for ${DB_USER}, continuing .. "
+ done=1
+ fi
+ count=`expr $count + 1`
+done
+
+if [ $done -eq 0 ]; then
+ echo "[ERROR] postgres: unable to create admin account"
+ exit 1
+fi
+
+ln -s /usr/share/zoneinfo /usr/share/postgresql/timezone