mirror of
https://github.com/Noratrieb/vps.git
synced 2026-01-14 16:55:00 +01:00
131 lines
3.8 KiB
YAML
131 lines
3.8 KiB
YAML
---
|
|
- name: VPS 2 setup
|
|
hosts: vps2
|
|
gather_facts: false
|
|
tasks:
|
|
#####
|
|
# APP: docker registry, /apps/registry
|
|
#####
|
|
- name: Create /apps/registry
|
|
ansible.builtin.file:
|
|
path: "/apps/registry"
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
- name: Create /apps/registry/data
|
|
ansible.builtin.file:
|
|
path: "/apps/registry/data"
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
- name: Copy over registry config.yml
|
|
ansible.builtin.copy:
|
|
dest: /apps/registry/config.yml
|
|
src: ../apps/registry/config.yml
|
|
mode: "u=r,g=r,o=r"
|
|
- name: Copy secrets user file
|
|
ansible.builtin.copy:
|
|
dest: "/apps/registry/htpasswd"
|
|
src: "../secrets/registry/htpasswd"
|
|
mode: "u=r,g=r,o=r"
|
|
#####
|
|
# APP: widetom, /apps/widetom
|
|
#####
|
|
- name: Create /apps/widetom
|
|
ansible.builtin.file:
|
|
path: "/apps/widetom"
|
|
state: directory
|
|
mode: u=rwx,g=rx,o=rx
|
|
- name: Copy widetom config.toml
|
|
ansible.builtin.copy:
|
|
dest: "/apps/widetom/config.toml"
|
|
src: "../secrets/widetom/config.toml"
|
|
mode: "u=r,g=r,o=r"
|
|
- name: Copy widetom bot_token
|
|
ansible.builtin.copy:
|
|
dest: "/apps/widetom/bot_token"
|
|
src: "../secrets/widetom/bot_token"
|
|
mode: "u=r,g=r,o=r"
|
|
#####
|
|
# APP: killua bot, /apps/killua
|
|
#####
|
|
- name: Create /apps/killua
|
|
ansible.builtin.file:
|
|
path: /apps/killua
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
#####
|
|
# APP: karin bot, /apps/karin-bot
|
|
#####
|
|
- name: Create /apps/karin-bot
|
|
ansible.builtin.file:
|
|
path: /apps/karin-bot
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
- name: "Copy karin .env secret"
|
|
ansible.builtin.copy:
|
|
dest: "/apps/karin-bot/.env"
|
|
src: "../secrets/karin-bot/.env"
|
|
mode: "u=r,g=r,o=r"
|
|
# TODO: Mount a volume in the karin-db to this directory
|
|
#####
|
|
# APP: cors-school, /apps/cors-school
|
|
#####
|
|
- name: Create /apps/cors-school
|
|
ansible.builtin.file:
|
|
path: /apps/cors-school
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
- name: Copy secret envs
|
|
ansible.builtin.copy:
|
|
dest: "/apps/cors-school/{{ item }}"
|
|
src: "../secrets/cors-school/{{ item }}"
|
|
mode: "u=r,g=r,o=r"
|
|
with_items:
|
|
- bot.env
|
|
- db.env
|
|
- server.env
|
|
#####
|
|
# APP: bisect-rustc-servce, /apps/bisect-rustc-service
|
|
#####
|
|
- name: Create /apps/bisect-rustc-service
|
|
ansible.builtin.file:
|
|
path: /apps/bisect-rustc-service
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
- name: SQLite DB permissions for bisect-rustc-servce
|
|
ansible.builtin.file:
|
|
path: /apps/bisect-rustc-service/db.sqlite
|
|
state: touch
|
|
mode: "u=rw,g=rw,o=rw"
|
|
#####
|
|
# APP: minecraft server, /apps/minecraft
|
|
#####
|
|
- name: Create /apps/minecraft
|
|
ansible.builtin.file:
|
|
path: /apps/minecraft
|
|
state: directory
|
|
mode: "u=rwx,g=rx,o=rx"
|
|
- name: Copy minecraft secrets
|
|
ansible.builtin.copy:
|
|
dest: "/apps/minecraft/.env"
|
|
src: "../secrets/minecraft/.env"
|
|
mode: "u=r,g=r,o=r"
|
|
#####
|
|
# END: docker compose up!
|
|
#####
|
|
# We want this to be last so that all app-specific config has been done.
|
|
- name: Copy .env
|
|
ansible.builtin.copy:
|
|
dest: "/apps/.env"
|
|
src: "../secrets/vps2.env"
|
|
mode: "u=r,g=r,o=r"
|
|
- name: Docker compose up! 🚀
|
|
community.docker.docker_compose:
|
|
project_src: /apps
|
|
state: present
|
|
restarted: true
|
|
#####
|
|
# POST: things after starting up
|
|
#####
|
|
- name: Run CORS db migrations
|
|
ansible.builtin.shell: |
|
|
docker exec -w /app/server cors-school-server diesel migration run
|