mirror of
https://asciireactor.com/otho/stashbox
synced 2024-11-21 22:55:06 +00:00
113 lines
2.6 KiB
YAML
113 lines
2.6 KiB
YAML
---
|
|
version: '3'
|
|
|
|
silent: true
|
|
|
|
vars:
|
|
CONFIG_PATHS: |
|
|
/usr/local/etc/haproxy.conf
|
|
/usr/local/etc/nginx/nginx.conf
|
|
/usr/local/etc/apache24/httpd.conf
|
|
SERVICES: "haproxy apache24 nginx plexmediaserver"
|
|
SERVICE_PORTS: 80 443 22 32400
|
|
command: 'echo $(whoami)@$(hostname -f)'
|
|
|
|
dotenv:
|
|
- .env
|
|
env:
|
|
GITLAB_PROJECT_ID: '{{ .stashbox_project_id }}'
|
|
GITLAB_PROJECT_SLUG: stashbox
|
|
|
|
tasks:
|
|
default:
|
|
- task: services
|
|
|
|
run: ssh -qtt "$stashbox_domain" '{{.command}}'
|
|
run-root: ssh -qtt "$stashbox_domain" 'su -l root -c "{{.command}}"'
|
|
|
|
exec:
|
|
- task: run
|
|
vars:
|
|
command: "{{.CLI_ARGS}}"
|
|
exec-root:
|
|
- task: run-root
|
|
vars:
|
|
command: "{{.CLI_ARGS}}"
|
|
|
|
services-restart:
|
|
cmds:
|
|
- for: { var: SERVICES }
|
|
task: run-root
|
|
vars:
|
|
command: echo service {{.ITEM}} restart
|
|
services:
|
|
cmds:
|
|
- for: { var: SERVICE_PORTS }
|
|
task: run
|
|
vars:
|
|
command: echo "=== PORT {{.ITEM}}"; sockstat -l|grep ":{{.ITEM}}"
|
|
|
|
nano:
|
|
- task: run
|
|
vars:
|
|
command: nano {{ .CLI_ARGS }}
|
|
nano-root:
|
|
- task: run-root
|
|
vars:
|
|
command: nano {{ .CLI_ARGS }}
|
|
|
|
diff:
|
|
- task: path-diff
|
|
vars:
|
|
remote_path: "{{.CLI_ARGS}}"
|
|
update:
|
|
- task: safe-update
|
|
vars:
|
|
remote_path: "{{.CLI_ARGS}}"
|
|
theme-update:
|
|
- task: path-update
|
|
vars:
|
|
remote_path: "{{.stashbox_webtheme_root}}/"
|
|
local_path: "theme/*"
|
|
conf-update:
|
|
cmds:
|
|
- for: { var: CONFIG_PATHS }
|
|
task: safe-update
|
|
vars:
|
|
remote_path: "{{.ITEM}}"
|
|
conf-diff:
|
|
cmds:
|
|
- for: { var: CONFIG_PATHS }
|
|
task: path-diff
|
|
vars:
|
|
remote_path: "{{.ITEM}}"
|
|
|
|
# Terraform
|
|
plan:
|
|
- task: tf
|
|
vars:
|
|
CLI_ARGS: plan
|
|
apply:
|
|
- task: tf
|
|
vars:
|
|
CLI_ARGS: apply
|
|
tf: source .env; terraform init; terraform {{.CLI_ARGS}}
|
|
|
|
# Utilities
|
|
printenv: source .env; printenv
|
|
path-update: echo scp "{{.local_path}}" "$stashbox_domain:{{.remote_path}}"
|
|
path-backup: scp "$stashbox_domain:{{.remote_path}}" "./.$(basename {{.remote_path}})-$(date +%s)" || echo "No file found."
|
|
path-diff:
|
|
- task: path-backup
|
|
vars:
|
|
remote_path: "{{.remote_path}}"
|
|
- diff "$(ls -c .$(basename {{.remote_path}})-*|head -n1)" "$(basename {{.remote_path}})" || [ "$?" == "1" ]
|
|
safe-update:
|
|
- task: path-backup
|
|
vars:
|
|
remote_path: "{{.remote_path}}"
|
|
- echo scp "$(basename {{.remote_path}})" "$stashbox_domain:{{.remote_path}}"
|
|
- task: path-diff
|
|
vars:
|
|
remote_path: "{{.remote_path}}"
|