Fix Ansible installation, add uninstall playbook
This commit is contained in:
parent
22883c94ea
commit
7c0a9121c9
3 changed files with 92 additions and 6 deletions
13
ansible/lemmy.yml
vendored
13
ansible/lemmy.yml
vendored
|
@ -29,12 +29,15 @@
|
||||||
- { path: '/lemmy/' }
|
- { path: '/lemmy/' }
|
||||||
- { path: '/lemmy/volumes/' }
|
- { path: '/lemmy/volumes/' }
|
||||||
|
|
||||||
- name: add all template files
|
- block:
|
||||||
template: src={{item.src}} dest={{item.dest}}
|
- name: add template files
|
||||||
|
template: src={{item.src}} dest={{item.dest}} mode={{item.mode}}
|
||||||
with_items:
|
with_items:
|
||||||
- { src: '../docker/prod/docker-compose.yml', dest: '/lemmy/docker-compose.yml' }
|
- { src: 'templates/docker-compose.yml', dest: '/lemmy/docker-compose.yml', mode: '0600' }
|
||||||
- { src: 'templates/config.hjson', dest: '/lemmy/lemmy.hjson' }
|
- { src: 'templates/nginx.conf', dest: '/etc/nginx/sites-enabled/lemmy.conf', mode: '0644' }
|
||||||
- { src: 'templates/nginx.conf', dest: '/etc/nginx/sites-enabled/lemmy.conf' }
|
|
||||||
|
- name: add config file (only during initial setup)
|
||||||
|
template: src='templates/config.hjson' dest='/lemmy/lemmy.hjson' mode='0600' force='no' owner='1000' group='1000'
|
||||||
vars:
|
vars:
|
||||||
postgres_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/postgres chars=ascii_letters,digits') }}"
|
postgres_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/postgres chars=ascii_letters,digits') }}"
|
||||||
jwt_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/jwt chars=ascii_letters,digits') }}"
|
jwt_password: "{{ lookup('password', 'passwords/{{ inventory_hostname }}/jwt chars=ascii_letters,digits') }}"
|
||||||
|
|
35
ansible/templates/docker-compose.yml
vendored
Normal file
35
ansible/templates/docker-compose.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
version: '3.3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
lemmy:
|
||||||
|
image: dessalines/lemmy:v0.6.5
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8536:8536"
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./lemmy.hjson:/config/config.hjson:ro
|
||||||
|
depends_on:
|
||||||
|
- lemmy_db
|
||||||
|
- lemmy_pictshare
|
||||||
|
|
||||||
|
lemmy_db:
|
||||||
|
image: postgres:12-alpine
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=lemmy
|
||||||
|
- POSTGRES_PASSWORD={{ postgres_password }}
|
||||||
|
- POSTGRES_DB=lemmy
|
||||||
|
volumes:
|
||||||
|
- lemmy_db:/var/lib/postgresql/data
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
lemmy_pictshare:
|
||||||
|
image: shtripok/pictshare:latest
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8537:80"
|
||||||
|
volumes:
|
||||||
|
- lemmy_pictshare:/usr/share/nginx/html/data
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
lemmy_db:
|
||||||
|
lemmy_pictshare:
|
48
ansible/uninstall.yml
vendored
Normal file
48
ansible/uninstall.yml
vendored
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
|
||||||
|
vars_prompt:
|
||||||
|
|
||||||
|
- name: confirm_uninstall
|
||||||
|
prompt: "Do you really want to uninstall Lemmy? This will delete all data and can not be reverted [yes/no]"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
- name: delete_certs
|
||||||
|
prompt: "Delete certificates? Select 'no' if you want to reinstall Lemmy [yes/no]"
|
||||||
|
private: no
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: end play if no confirmation was given
|
||||||
|
debug:
|
||||||
|
msg: "Uninstall cancelled, doing nothing"
|
||||||
|
when: not confirm_uninstall|bool
|
||||||
|
|
||||||
|
- meta: end_play
|
||||||
|
when: not confirm_uninstall|bool
|
||||||
|
|
||||||
|
- name: stop docker-compose
|
||||||
|
docker_compose:
|
||||||
|
project_src: /lemmy/
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: delete data
|
||||||
|
file: path={{item.path}} state=absent
|
||||||
|
with_items:
|
||||||
|
- { path: '/lemmy/' }
|
||||||
|
- { path: '/etc/nginx/sites-enabled/lemmy.conf' }
|
||||||
|
|
||||||
|
- name: Remove a volume
|
||||||
|
docker_volume: name={{item.name}} state=absent
|
||||||
|
with_items:
|
||||||
|
- { name: 'lemmy_lemmy_db' }
|
||||||
|
- { name: 'lemmy_lemmy_pictshare' }
|
||||||
|
|
||||||
|
- name: delete entire ecloud folder
|
||||||
|
file: path='/mnt/repo-base/' state=absent
|
||||||
|
when: delete_certs|bool
|
||||||
|
|
||||||
|
- name: remove certbot cronjob
|
||||||
|
cron:
|
||||||
|
name=certbot-renew-lemmy
|
||||||
|
state=absent
|
||||||
|
|
Reference in a new issue