baikal: add server config
This commit is contained in:
parent
ef8f5da37d
commit
35de046d69
8 changed files with 95 additions and 0 deletions
3
roles/baikal-web/meta/main.yml
Normal file
3
roles/baikal-web/meta/main.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
dependencies:
|
||||
- role: caddy
|
||||
9
roles/baikal-web/tasks/main.yml
Normal file
9
roles/baikal-web/tasks/main.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
- name: Ensure Caddyfile is present
|
||||
template:
|
||||
src: 'baikal.Caddyfile.j2'
|
||||
dest: '/etc/caddy/baikal.Caddyfile'
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify: caddy-reload
|
||||
3
roles/baikal-web/templates/baikal.Caddyfile.j2
Normal file
3
roles/baikal-web/templates/baikal.Caddyfile.j2
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
dav.roosens.me {
|
||||
reverse_proxy {{ hostvars[groups['baikal'][0]].static_ip }}:8005
|
||||
}
|
||||
12
roles/baikal/files/baikal.backup.sh
Normal file
12
roles/baikal/files/baikal.backup.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
data_dir='/mnt/data1/baikal'
|
||||
snapshot_dir="${data_dir}.snapshot"
|
||||
|
||||
# Read-only snapshot for atomic backup
|
||||
btrfs subvolume snapshot -r "$data_dir" "$snapshot_dir" || exit $?
|
||||
|
||||
/usr/local/bin/restic backup "$snapshot_dir"
|
||||
|
||||
# Always remove snapshot subvolume, even if restic fails
|
||||
btrfs subvolume delete "$snapshot_dir"
|
||||
11
roles/baikal/files/compose.yml
Normal file
11
roles/baikal/files/compose.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
app:
|
||||
image: 'ckulka/baikal:0.9.4-nginx'
|
||||
restart: always
|
||||
ports:
|
||||
- '8005:80'
|
||||
volumes:
|
||||
- '/mnt/data1/baikal/config:/var/www/baikal/config'
|
||||
- '/mnt/data1/baikal/Specific:/var/www/baikal/Specific'
|
||||
44
roles/baikal/tasks/main.yml
Normal file
44
roles/baikal/tasks/main.yml
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
- name: Ensure data directory is present
|
||||
ansible.builtin.file:
|
||||
path: '/mnt/data1/baikal'
|
||||
state: directory
|
||||
mode: '0755'
|
||||
owner: 'root'
|
||||
group: 'root'
|
||||
|
||||
- name: Ensure data subvolumes are present
|
||||
community.general.btrfs_subvolume:
|
||||
name: '/baikal/{{ item }}'
|
||||
loop:
|
||||
- 'Specific'
|
||||
- 'config'
|
||||
|
||||
- name: Ensure configuration directory is present
|
||||
ansible.builtin.file:
|
||||
path: '/etc/baikal'
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: Ensure compose file is present
|
||||
ansible.builtin.copy:
|
||||
src: 'compose.yml'
|
||||
dest: '/etc/baikal/compose.yml'
|
||||
mode: '0644'
|
||||
owner: 'root'
|
||||
group: 'root'
|
||||
register: res
|
||||
|
||||
- name: Ensure stack is deployed
|
||||
ansible.builtin.shell:
|
||||
chdir: '/etc/baikal'
|
||||
cmd: 'docker compose up -d --remove-orphans'
|
||||
when: 'res.changed'
|
||||
|
||||
- name: Ensure backup script is present
|
||||
ansible.builtin.copy:
|
||||
src: 'baikal.backup.sh'
|
||||
dest: '/etc/backups/baikal.backup.sh'
|
||||
owner: 'root'
|
||||
group: 'root'
|
||||
mode: '0644'
|
||||
Loading…
Add table
Add a link
Reference in a new issue