aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2019-09-14 15:59:40 -0400
committerMitch Riedstra <mitch@riedstra.us>2019-09-14 15:59:40 -0400
commit6a0aa89e3dfd7bd0755b67931532eaa173f73919 (patch)
treec3dc047ef06d878b1d9f7998369191bfd39b0549
downloadalpine-postgres-6a0aa89e3dfd7bd0755b67931532eaa173f73919.tar.gz
alpine-postgres-6a0aa89e3dfd7bd0755b67931532eaa173f73919.tar.xz
Initial
-rw-r--r--defaults/main.yml1
-rw-r--r--readme.md5
-rw-r--r--tasks/main.yml28
-rw-r--r--templates/run.j215
4 files changed, 49 insertions, 0 deletions
diff --git a/defaults/main.yml b/defaults/main.yml
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/defaults/main.yml
@@ -0,0 +1 @@
+
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..c33eb97
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,5 @@
+# Install Postgres and Runit service on Alpine Linux
+
+Ideally used in conjunction with my Alpine Linux
+playbook, though it shouldn't be hard to adapt it to
+other systems.
diff --git a/tasks/main.yml b/tasks/main.yml
new file mode 100644
index 0000000..7b67816
--- /dev/null
+++ b/tasks/main.yml
@@ -0,0 +1,28 @@
+- name: Install Postgres
+ apk:
+ name: postgresql
+ update_cache: yes
+- name: Install Runit service directory
+ file:
+ state: directory
+ path: /etc/sv/postgres
+ mode: '0755'
+- name: Install Runit service command
+ template:
+ src: run.j2
+ dest: /etc/sv/postgres/run
+ mode: '755'
+- name: Install supervise symlink
+ file:
+ state: link
+ force: yes
+ src: /run/supervise.postgres
+ dest: /etc/sv/postgres/supervise
+ follow: false
+- name: Enable postgres service
+ file:
+ state: link
+ force: yes
+ src: /etc/sv/postgres
+ dest: /var/service/postgres
+ follow: false
diff --git a/templates/run.j2 b/templates/run.j2
new file mode 100644
index 0000000..9242dd2
--- /dev/null
+++ b/templates/run.j2
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+pguser="postgres"
+PGDATA="/var/postgres"
+
+if ! [ -d "$PGDATA" ] ; then
+ mkdir -p "$PGDATA"
+ chown -R "$pguser" "$PGDATA"
+ chmod 700 "$PGDATA"
+ su - postgres -m -c "pg_ctl initdb -D \"$PGDATA\""
+fi
+
+mkdir -p /run/postgresql && chown "$pguser" /run/postgresql
+exec chpst -u postgres:postgres postgres -D "$PGDATA" 2>&1
+