- name: Deploy storage drive
import_playbook: storage_drive.yaml
+
+- name: Deploy yt-dlp server
+ import_playbook: yt_dlp_server.yaml
--- /dev/null
+# Copyright (c) 2023 Jakub Czajka <jakub@ekhem.eu.org>
+# License: GPL-3.0 or later.
+
+- hosts: servers
+ vars:
+ repos:
+ - /srv/git/yt_dlp_server.git
+ - /srv/git/yt_dlp_server_prod.git
+ dest: "/srv/prod/yt_dlp_server"
+ tasks:
+ - name: Ensure user exists for executing scripts
+ user:
+ name: "yt_dlp_server"
+ shell: "/bin/sh"
+ home: "{{ dest }}"
+ become: yes
+ - name: Ensure destination directory exists
+ file:
+ path: "{{ dest }}"
+ mode: 0775
+ state: directory
+ owner: git
+ group: yt_dlp_server
+ become: true
+ - name: Install dependencies
+ package:
+ name:
+ - ffmpeg
+ state: latest
+ become: yes
+ - name: Checkout to the destination directory
+ command: |
+ git --work-tree={{ dest }} --git-dir={{ item }} checkout master --force
+ become: yes
+ with_items: "{{ repos }}"
+ - name: Ensure correct ownership in the destination directory
+ file:
+ dest: "{{ dest }}"
+ owner: git
+ group: yt_dlp_server
+ recurse: yes
+ become: yes
+ - name: Symlink system configuration
+ file:
+ src: "{{ dest }}/{{ item }}"
+ dest: "/etc/systemd/system/{{ item }}"
+ state: link
+ become: true
+ with_items:
+ - yt_dlp_server.service
+ - name: Set execution mode to scripts
+ file:
+ dest: "{{ dest }}/{{ item }}"
+ mode: 0755
+ become: true
+ with_items:
+ - yt_dlp_server.sh
+ - name: Enable services
+ systemd:
+ name: "{{ item }}"
+ state: restarted
+ enabled: true
+ daemon_reload: true
+ become: true
+ with_items:
+ - yt_dlp_server.service