110 lines
2.8 KiB
YAML
110 lines
2.8 KiB
YAML
- name: PostgREST - system user
|
|
user: name=postgrest
|
|
|
|
- name: PostgREST - add Postgres PPA gpg key
|
|
apt_key:
|
|
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
|
state: present
|
|
|
|
- name: PostgREST - add Postgres PPA
|
|
apt_repository:
|
|
repo: "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg {{ postgresql_major }}"
|
|
state: present
|
|
|
|
- name: PostgREST - update apt cache
|
|
apt:
|
|
update_cache: yes
|
|
|
|
# libpq is a C library that enables user programs to communicate with
|
|
# the PostgreSQL database server.
|
|
- name: PostgREST - system dependencies
|
|
apt:
|
|
pkg:
|
|
- libpq5
|
|
- libnuma-dev
|
|
|
|
- name: PostgREST - remove Postgres PPA gpg key
|
|
apt_key:
|
|
url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
|
|
state: absent
|
|
|
|
- name: PostgREST - remove Postgres PPA
|
|
apt_repository:
|
|
repo: "deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg {{ postgresql_major }}"
|
|
state: absent
|
|
|
|
- name: postgis - ensure dependencies do not get autoremoved
|
|
shell: |
|
|
set -e
|
|
apt-mark manual libpq5*
|
|
apt-mark manual libnuma*
|
|
apt-mark auto libnuma*-dev
|
|
|
|
- name: PostgREST - download ubuntu binary archive (arm)
|
|
get_url:
|
|
url: "https://github.com/PostgREST/postgrest/releases/download/v{{ postgrest_release }}/postgrest-v{{ postgrest_release }}-ubuntu-aarch64.tar.xz"
|
|
dest: /tmp/postgrest.tar.xz
|
|
checksum: "{{ postgrest_arm_release_checksum }}"
|
|
timeout: 60
|
|
when: platform == "arm64"
|
|
|
|
- name: PostgREST - download ubuntu binary archive (x86)
|
|
get_url:
|
|
url: "https://github.com/PostgREST/postgrest/releases/download/v{{ postgrest_release }}/postgrest-v{{ postgrest_release }}-linux-static-x64.tar.xz"
|
|
dest: /tmp/postgrest.tar.xz
|
|
checksum: "{{ postgrest_x86_release_checksum }}"
|
|
timeout: 60
|
|
when: platform == "amd64"
|
|
|
|
- name: PostgREST - unpack archive in /opt
|
|
unarchive:
|
|
remote_src: yes
|
|
src: /tmp/postgrest.tar.xz
|
|
dest: /opt
|
|
owner: postgrest
|
|
mode: '0755'
|
|
|
|
- name: create directories
|
|
file:
|
|
state: directory
|
|
owner: postgrest
|
|
group: postgrest
|
|
mode: '0775'
|
|
path: /etc/postgrest
|
|
|
|
- name: empty files
|
|
file:
|
|
state: touch
|
|
owner: postgrest
|
|
group: postgrest
|
|
path: /etc/postgrest/{{ item }}
|
|
with_items:
|
|
- base.conf
|
|
- generated.conf
|
|
|
|
- name: create conf merging script
|
|
copy:
|
|
content: |
|
|
#! /usr/bin/env bash
|
|
set -euo pipefail
|
|
set -x
|
|
|
|
cd "$(dirname "$0")"
|
|
cat $@ > merged.conf
|
|
dest: /etc/postgrest/merge.sh
|
|
mode: 0750
|
|
owner: postgrest
|
|
group: postgrest
|
|
|
|
- name: PostgREST - create service files
|
|
template:
|
|
src: files/{{ item }}.j2
|
|
dest: /etc/systemd/system/{{ item }}
|
|
with_items:
|
|
- postgrest.service
|
|
- postgrest-optimizations.service
|
|
|
|
- name: PostgREST - reload systemd
|
|
systemd:
|
|
daemon_reload: yes
|