Initial commit uberspace ansible

This commit is contained in:
2021-01-04 21:52:44 +01:00
commit 5531bd56ea
22 changed files with 376 additions and 0 deletions

View File

@ -0,0 +1,6 @@
---
- name: reload supervisorctl
command: supervisorctl reread
- name: update supervisorctl
command: supervisorctl update

View File

@ -0,0 +1,2 @@
---
postgres_version: 13.1

View File

@ -0,0 +1,3 @@
---
- name: restart postgres
command: supervisorctl restart postgresql

View File

@ -0,0 +1,3 @@
---
dependencies:
- role: common

View File

@ -0,0 +1,18 @@
---
- name: create directory for download
file:
path: ~/postgres
state: directory
mode: '0755'
- name: download PostgreSQL and extract archive
unarchive:
src: https://download.postgresql.org/pub/source/v{{ postgres_version }}/postgresql-{{ postgres_version }}.tar.gz
dest: ~/postgres
remote_src: yes
- name: configure PostgreSQL
command: cd ~/postgres/postgresql-{{ postgres_version }} && ./configure --prefix=$HOME/opt/postgresql/ --with-python PYTHON=/usr/bin/python3
- name: make PostgreSQL
command: cd ~/postgres/postgresql-{{ postgres_version }} && make world
- name: install PostgreSQL
command: cd ~/postgres/postgresql-{{ postgres_version }} && make install-world

View File

@ -0,0 +1,5 @@
---
- include: compile.yml
- include: profile.yml
- include: setup.yml
- include: service.yml

View File

@ -0,0 +1,21 @@
---
- name: copy profile file to home dir
template:
src: postgres_profile.j2
dest: ~/.postgres_profile
mode: 0644
- name: include postgres profile in bash_profile
lineinfile:
path: ~/.bash_profile
line: source ~/.postgres_profile
insertafter: EOF
- name: copy environment var file to home dir
template:
src: postgres_env.j2
dest: ~/.postgres_vars
mode: 0644
- name: include postgres vars in bashrc
lineinfile:
path: ~/.bashrc
line: source ~/.postgres_vars
insertafter: EOF

View File

@ -0,0 +1,11 @@
---
- name: create service
template:
src: postgres_service.j2
dest: ~/etc/services.d/postgresql.ini
mode: 0644
notify:
- reload supervisorctl
- update supervisorctl
- name: Flush handlers
meta: flush_handlers

View File

@ -0,0 +1,27 @@
---
- name: create pgpass file
template:
src: pgpass.j2
dest: ~/.pgpass
mode: 0600
- name: create temporary password file
template:
src: pgpass_temp.j2
dest: ~/.pgpass_temp
mode: 0600
- name: setup database cluster
command: initdb --pwfile ~/pgpass.temp --auth=scram-sha-256 -E UTF8 -D ~/opt/postgresql/data/
- name: delete temporary password file
file:
path: ~/.pgpass_temp
state: absent
- name: update port
lineinfile:
path: ~/opt/postgresql/data/postgresql.conf
regexp: '^port ='
line: port = {{ postgres_port }}
- name: update unix socket directories
lineinfile:
path: ~/opt/postgresql/data/postgresql.conf
regexp: '^unix_socket_directories'
line: unix_socket_directories = '/home/{{ uberspace_user }}/tmp' # comma-separated list of directories

View File

@ -0,0 +1,2 @@
#hostname:port:database:username:password (min 64 characters)
*:*:*:{{ uberspace_user }}:{{ postgres_password }}

View File

@ -0,0 +1 @@
{{ postgres_password }}

View File

@ -0,0 +1,2 @@
export PGHOST=localhost
export PGPORT={{ postgres_port }}

View File

@ -0,0 +1,4 @@
export PATH=$HOME/opt/postgresql/bin/:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opt/postgresql/lib
export PGPASSFILE=$HOME/.pgpass

View File

@ -0,0 +1,4 @@
[program:postgresql]
command=%(ENV_HOME)s/opt/postgresql/bin/postgres -D %(ENV_HOME)s/opt/postgresql/data/
autostart=yes
autorestart=yes