Divide webservices into task files

This commit is contained in:
Salt 2021-08-07 16:49:24 -05:00
parent 69f3edcf2b
commit 30dd4ff8dc
10 changed files with 193 additions and 163 deletions

View File

@ -0,0 +1,12 @@
# vim:ft=ansible:
- name: docker deploy gulagbot
docker_container:
name: gulagbot
image: rehashedsalt/gulagbot:latest
env:
DISCORD_TOKEN: "{{ secret_gulagbot_discord_token }}"
PGHOST: 192.168.164.156
PGDATABASE: gulagbot-desultd
PGUSER: gulagbot-desultd
PGPASSWORD: "{{ secret_gulagbot_db_pass }}"
tags: [ docker, gulagbot, stalin ]

View File

@ -0,0 +1,9 @@
# vim:ft=ansible:
- name: docker deploy redis
docker_container:
name: redis
image: redis:6-alpine
networks:
- name: web
aliases: [ "redis" ]
tags: [ docker, redis ]

View File

@ -0,0 +1,11 @@
# vim:ft=ansible:
- name: docker deploy 9iron
docker_container:
name: 9iron
image: rehashedsalt/9iron:latest
ports:
- 8001:80
volumes:
- /data/9iron/files:/var/www/html/files
- /data/9iron/packs:/var/www/html/minecraft/packs
tags: [ docker, 9iron ]

View File

@ -0,0 +1,10 @@
# vim:ft=ansible:
- name: docker deploy desultd
docker_container:
name: desultd
image: rehashedsalt/desultd:latest
ports:
- 8002:80
volumes:
- /data/9iron/files:/var/www/html/files
tags: [ docker, 9iron ]

View File

@ -0,0 +1,22 @@
# vim:ft=ansible:
- name: docker deploy gitea
docker_container:
name: gitea
image: gitea/gitea:1
env:
USER_UID: "1002"
USER_GID: "1002"
GITEA__database_DB_TYPE: postgres
GITEA__database_HOST: 192.168.164.156:5432
GITEA__database_NAME: gitea-desultd
GITEA__database_USER: gitea-desultd
GITEA__database_PASSWD: "{{ secret_gitea_db_pass }}"
ports:
- 3000:3000
- 127.0.0.1:2222:22
volumes:
- /data/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/lib/gitea/.ssh:/data/git/.ssh
tags: [ docker, gitea ]

View File

@ -0,0 +1,18 @@
# vim:ft=ansible:
- name: docker deploy nginx proxy
docker_container:
name: ingress
image: jonasal/nginx-certbot:2.2.0
env:
TZ: "America/Chicago"
CERTBOT_EMAIL: rehashedsalt@cock.li
networks:
- name: web
aliases: [ "ingress" ]
ports:
- "443:443"
- "80:80"
volumes:
- /data/nginx-certbot/letsencrypt:/etc/letsencrypt
- /data/nginx-certbot/user_conf.d:/etc/nginx/user_conf.d:ro
tags: [ docker, ingress ]

View File

@ -0,0 +1,23 @@
# vim:ft=ansible:
- name: docker deploy netbox
docker_container:
name: netbox
image: netboxcommunity/netbox:latest
env:
SUPERUSER_EMAIL: rehashedsalt@cock.li
SUPERUSER_PASSWORD: "{{ secret_netbox_user_pass }}"
SUPERUSER_API_TOKEN: "{{ secret_netbox_api_token }}"
SECRET_KEY: "{{ secret_netbox_secret_key }}"
ALLOWED_HOST: netbox.desu.ltd
DB_HOST: 192.168.164.156
DB_NAME: netbox-desultd
DB_USER: netbox-desultd
DB_PASSWORD: "{{ secret_netbox_db_pass }}"
REDIS_HOST: redis
REDIS_PORT: "6379"
networks:
- name: web
aliases: [ "netbox" ]
volumes:
- /data/netbox/config:/config
tags: [ docker, netbox ]

View File

@ -0,0 +1,23 @@
# vim:ft=ansible:
- name: docker deploy peertube
docker_container:
name: peertube
image: chocobozzz/peertube:production-buster
env:
POSTGRES_DB: peertube_cowfee
PEERTUBE_DB: peertube_cowfee
PEERTUBE_DB_USERNAME: peertube-cowfee
PEERTUBE_DB_PASSWORD: "{{ secret_peertube_db_pass }}"
PEERTUBE_DB_HOSTNAME: 192.168.164.156
PEERTUBE_ADMIN_EMAIL: rehashedsalt@cock.li
PEERTUBE_WEBSERVER_HOSTNAME: tube.cowfee.moe
PEERTUBE_TRUST_PROXY: '["127.0.0.0/16", "192.168.0.0/16", "172.16.0.0/12", "10.0.0.0/8"]'
networks:
- name: web
aliases: [ "peertube" ]
ports:
- "1935:1935"
volumes:
- /data/peertube/data:/data
- /data/peertube/config:/config
tags: [ docker, peertube ]

View File

@ -0,0 +1,19 @@
# vim:ft=ansible:
- name: docker deploy pleroma
docker_container:
name: pleroma
image: jordemort/pleroma
env:
TZ: "America/Chicago"
POSTGRES_HOST: 192.168.164.156
POSTGRES_DB: pleroma_cowfee
POSTGRES_USER: pleroma-cowfee
POSTGRES_PASSWORD: "{{ secret_pleroma_9iron_db_pass }}"
networks:
- name: web
aliases: [ "pleroma" ]
volumes:
- /data/pleroma/etc:/etc/pleroma
- /data/pleroma/static:/var/lib/pleroma/static
- /data/pleroma/uploads:/var/lib/pleroma/uploads
tags: [ docker, pleroma ]

View File

@ -15,60 +15,25 @@
restart_policy: unless-stopped restart_policy: unless-stopped
pull: yes pull: yes
tasks: tasks:
- name: include tasks for apps
include_tasks: tasks/app/{{ task }}
with_items:
- gulagbot.yml
loop_control:
loop_var: task
tags: [ always ]
- name: include tasks for web services
include_tasks: tasks/web/{{ task }}
with_items:
- 9iron.yml
- desultd.yml
- gitea.yml
loop_control:
loop_var: task
tags: [ always ]
- name: configure nextcloud cronjob - name: configure nextcloud cronjob
cron: user=www-data name=nextcloud minute=*/5 job="php -f /var/www/nc.desu.ltd/cron.php" cron: user=www-data name=nextcloud minute=*/5 job="php -f /var/www/nc.desu.ltd/cron.php"
tags: [ nextcloud, cron ] tags: [ nextcloud, cron ]
- name: docker deploy 9iron
docker_container:
name: 9iron
image: rehashedsalt/9iron:latest
ports:
- 8001:80
volumes:
- /data/9iron/files:/var/www/html/files
- /data/9iron/packs:/var/www/html/minecraft/packs
tags: [ docker, 9iron ]
- name: docker deploy desultd
docker_container:
name: desultd
image: rehashedsalt/desultd:latest
ports:
- 8002:80
volumes:
- /data/9iron/files:/var/www/html/files
tags: [ docker, 9iron ]
- name: docker deploy gitea
docker_container:
name: gitea
image: gitea/gitea:1
env:
USER_UID: "1002"
USER_GID: "1002"
GITEA__database_DB_TYPE: postgres
GITEA__database_HOST: 192.168.164.156:5432
GITEA__database_NAME: gitea-desultd
GITEA__database_USER: gitea-desultd
GITEA__database_PASSWD: "{{ secret_gitea_db_pass }}"
ports:
- 3000:3000
- 127.0.0.1:2222:22
volumes:
- /data/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /var/lib/gitea/.ssh:/data/git/.ssh
tags: [ docker, gitea ]
- name: docker deploy gulagbot
docker_container:
name: gulagbot
image: rehashedsalt/gulagbot:latest
env:
DISCORD_TOKEN: "{{ secret_gulagbot_discord_token }}"
PGHOST: 192.168.164.156
PGDATABASE: gulagbot-desultd
PGUSER: gulagbot-desultd
PGPASSWORD: "{{ secret_gulagbot_db_pass }}"
tags: [ docker, gulagbot, stalin ]
roles: roles:
- role: backup - role: backup
vars: vars:
@ -147,71 +112,22 @@
} }
} }
tags: [ docker, ingress ] tags: [ docker, ingress ]
- name: docker deploy pleroma - name: include tasks for apps
docker_container: include_tasks: tasks/app/{{ task }}
name: pleroma with_items:
image: jordemort/pleroma - redis.yml
env: loop_control:
TZ: "America/Chicago" loop_var: task
POSTGRES_HOST: 192.168.164.156 tags: [ always ]
POSTGRES_DB: pleroma_cowfee - name: include tasks for web services
POSTGRES_USER: pleroma-cowfee include_tasks: tasks/web/{{ task }}
POSTGRES_PASSWORD: "{{ secret_pleroma_9iron_db_pass }}" with_items:
networks: - peertube.yml
- name: web - pleroma.yml
aliases: [ "pleroma" ] - ingress-generic.yml
volumes: loop_control:
- /data/pleroma/etc:/etc/pleroma loop_var: task
- /data/pleroma/static:/var/lib/pleroma/static tags: [ always ]
- /data/pleroma/uploads:/var/lib/pleroma/uploads
tags: [ docker, pleroma ]
- name: docker deploy redis
docker_container:
name: redis
image: redis:6-alpine
networks:
- name: web
aliases: [ "redis" ]
tags: [ docker, redis ]
- name: docker deploy peertube
docker_container:
name: peertube
image: chocobozzz/peertube:production-buster
env:
POSTGRES_DB: peertube_cowfee
PEERTUBE_DB: peertube_cowfee
PEERTUBE_DB_USERNAME: peertube-cowfee
PEERTUBE_DB_PASSWORD: "{{ secret_peertube_db_pass }}"
PEERTUBE_DB_HOSTNAME: 192.168.164.156
PEERTUBE_ADMIN_EMAIL: rehashedsalt@cock.li
PEERTUBE_WEBSERVER_HOSTNAME: tube.cowfee.moe
PEERTUBE_TRUST_PROXY: '["127.0.0.0/16", "192.168.0.0/16", "172.16.0.0/12", "10.0.0.0/8"]'
networks:
- name: web
aliases: [ "peertube" ]
ports:
- "1935:1935"
volumes:
- /data/peertube/data:/data
- /data/peertube/config:/config
tags: [ docker, peertube ]
- name: docker deploy nginx proxy
docker_container:
name: ingress
image: jonasal/nginx-certbot:2.2.0
env:
TZ: "America/Chicago"
CERTBOT_EMAIL: rehashedsalt@cock.li
networks:
- name: web
aliases: [ "ingress" ]
ports:
- "443:443"
- "80:80"
volumes:
- /data/nginx-certbot/letsencrypt:/etc/letsencrypt
- /data/nginx-certbot/user_conf.d:/etc/nginx/user_conf.d:ro
tags: [ docker, ingress ]
roles: roles:
- role: backup - role: backup
vars: vars:
@ -254,53 +170,20 @@
} }
} }
tags: [ docker, ingress ] tags: [ docker, ingress ]
- name: docker deploy redis - name: include tasks for apps
docker_container: include_tasks: tasks/app/{{ task }}
name: redis with_items:
image: redis:6-alpine - redis.yml
networks: loop_control:
- name: web loop_var: task
aliases: [ "redis" ] tags: [ always ]
tags: [ docker, redis ] - name: include tasks for web services
- name: docker deploy netbox include_tasks: tasks/web/{{ task }}
docker_container: with_items:
name: netbox - netbox.yml
image: netboxcommunity/netbox:latest loop_control:
env: loop_var: task
SUPERUSER_EMAIL: rehashedsalt@cock.li tags: [ always ]
SUPERUSER_PASSWORD: "{{ secret_netbox_user_pass }}"
SUPERUSER_API_TOKEN: "{{ secret_netbox_api_token }}"
SECRET_KEY: "{{ secret_netbox_secret_key }}"
ALLOWED_HOST: netbox.desu.ltd
DB_HOST: 192.168.164.156
DB_NAME: netbox-desultd
DB_USER: netbox-desultd
DB_PASSWORD: "{{ secret_netbox_db_pass }}"
REDIS_HOST: redis
REDIS_PORT: "6379"
networks:
- name: web
aliases: [ "netbox" ]
volumes:
- /data/netbox/config:/config
tags: [ docker, netbox ]
- name: docker deploy nginx proxy
docker_container:
name: ingress
image: jonasal/nginx-certbot:2.2.0
env:
TZ: "America/Chicago"
CERTBOT_EMAIL: rehashedsalt@cock.li
networks:
- name: web
aliases: [ "ingress" ]
ports:
- "443:443"
- "80:80"
volumes:
- /data/nginx-certbot/letsencrypt:/etc/letsencrypt
- /data/nginx-certbot/user_conf.d:/etc/nginx/user_conf.d:ro
tags: [ docker, ingress ]
roles: roles:
- role: backup - role: backup
vars: vars: