--- - name: Basic Setup hosts: ele-hyperion roles: - role: apt-repo/base - role: core/base - role: core/sshd/base - role: core/zsh - role: core/ntp - role: core/cpu-microcode - name: Payload Setup hosts: ele-hyperion roles: - role: apt-repo/obs-studio - role: apt-repo/spreadspace - role: nginx/base - role: monitoring/prometheus/exporter - role: ws/base - role: core/users - role: streaming/blackmagic/desktopvideo - role: streaming/blackmagic/mediaexpress - role: docker/engine post_tasks: ## TODO: move to network/netplan when this is done - name: install vlan interfaces loop: "{{ network.vlans | dict2items }}" loop_control: label: "{{ item.key }} ({{ item.value | join(',') }})" copy: dest: "/etc/netplan/20-{{ item.key }}.yaml" content: | network: vlans: {% for vlan in item.value %} {% set vlan_ifname = item.key + '.' + (vlan | string) %} {% set vlan_iface = (network.interfaces | selectattr('name', 'eq', vlan_ifname)) %} {{ vlan_ifname }}: id: {{ vlan }} link: {{ item.key }} {% if vlan_iface %} addresses: - {{ (vlan_iface | first).address }} {% endif %} {% endfor %} - name: install script to play videos via decklink card copy: dest: /usr/local/bin/play-video.sh mode: 0755 content: | #!/bin/bash if [ -z "$1" ]; then echo "Usage: $0 " exit 1 fi video_path_full=$(realpath "$1") video_name=$(basename "$video_path_full") decklink_device="DeckLink Duo (2)" exec docker run --rm -it --device=/dev/blackmagic:/dev/blackmagic -v /usr/lib/libDeckLinkAPI.so:/usr/lib/libDeckLinkAPI.so \ -v /usr/lib/libDeckLinkAPI.so:/usr/lib/libDeckLinkAPI.so -v /usr/lib/blackmagic:/usr/lib/blackmagic \ -v "$video_path_full:/srv/$video_name" \ registry.gitlab.com/spreadspace/docker/ffmpeg:bookworm-decklink12.5-2024-02-18.33 \ /usr/bin/ffmpeg -i "/srv/$video_name" -ac 2 -pix_fmt uyvy422 -s 1920x1080 -r 25 -f decklink "$decklink_device"