Add fedora support to sunshine role
This commit is contained in:
parent
32bef2d7f3
commit
8e3375b160
43
roles/sunshine/tasks/Debian.yaml
Normal file
43
roles/sunshine/tasks/Debian.yaml
Normal file
@ -0,0 +1,43 @@
|
||||
---
|
||||
# FIXME: This will only work for Debian or Ubuntu but not Ubuntu derived distros
|
||||
- set_fact:
|
||||
assets: '{{latest.json.assets}}'
|
||||
asset_name: 'sunshine-{{ ansible_distribution | lower }}-{{ ansible_distribution_version }}-amd64.deb'
|
||||
- set_fact:
|
||||
asset_query: '[?contains(name, `{{asset_name}}`)] | [0]'
|
||||
- set_fact:
|
||||
asset: '{{assets | json_query(asset_query)}}'
|
||||
|
||||
- name: download deb file
|
||||
get_url:
|
||||
url: '{{asset.browser_download_url}}'
|
||||
dest: '/tmp/{{asset_name}}'
|
||||
environment: '{{proxy_environment}}'
|
||||
|
||||
- name: install package from deb file
|
||||
become: true
|
||||
apt:
|
||||
deb: '/tmp/{{asset_name}}'
|
||||
|
||||
- name: remove deb file
|
||||
file:
|
||||
state: absent
|
||||
path: '/tmp/{{asset_name}}'
|
||||
|
||||
- name: fix systemd unit
|
||||
become: true
|
||||
copy:
|
||||
path: /usr/lib/systemd/user/sunshine.service
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Sunshine is a self-hosted game stream host for Moonlight.
|
||||
StartLimitIntervalSec=500
|
||||
StartLimitBurst=5
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/sunshine
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
|
||||
[Install]
|
||||
WantedBy=xdg-desktop-autostart.target
|
56
roles/sunshine/tasks/RedHat.yaml
Normal file
56
roles/sunshine/tasks/RedHat.yaml
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
- assert:
|
||||
that:
|
||||
- ansible_distribution == "Fedora"
|
||||
- assets is defined
|
||||
|
||||
- set_fact:
|
||||
asset_name: 'sunshine-{{ ansible_distribution | lower }}-{{ ansible_distribution_version }}-amd64.rpm'
|
||||
- set_fact:
|
||||
asset_query: '[?contains(name, `{{asset_name}}`)] | [0]'
|
||||
- set_fact:
|
||||
asset: '{{assets | json_query(asset_query)}}'
|
||||
|
||||
- name: download rpm file
|
||||
get_url:
|
||||
url: '{{asset.browser_download_url}}'
|
||||
dest: '/tmp/{{asset_name}}'
|
||||
environment: '{{proxy_environment}}'
|
||||
|
||||
- name: install package from rpm file
|
||||
dnf:
|
||||
name: '/tmp/{{asset_name}}'
|
||||
|
||||
- name: remove rpm file
|
||||
file:
|
||||
state: absent
|
||||
path: '/tmp/{{asset_name}}'
|
||||
|
||||
- name: create udev rules for uinput
|
||||
become: true
|
||||
copy:
|
||||
content: |
|
||||
KERNEL=="uinput", SUBSYSTEM=="misc", OPTIONS+="static_node=uinput", TAG+="uaccess"
|
||||
dest: /etc/udev/rules.d/60-sunshine.rules
|
||||
|
||||
- name: reload udev rules for uinput
|
||||
become: true
|
||||
command: udevadm control --reload-rules
|
||||
|
||||
- name: request udev events
|
||||
become: true
|
||||
command: udevadm trigger
|
||||
|
||||
- name: add uinput module
|
||||
become: true
|
||||
modprobe:
|
||||
name: uinput
|
||||
|
||||
- name: stat sunshine
|
||||
stat:
|
||||
path: /usr/bin/sunshine
|
||||
register: sunshine
|
||||
|
||||
- name: enable permissions for KMS capture
|
||||
become: true
|
||||
command: 'setcap cap_sys_admin+p {{ sunshine.stat.lnk_source }}'
|
@ -1,8 +1,4 @@
|
||||
---
|
||||
- set_fact:
|
||||
# TODO: Construct this out of information in ansible_facts
|
||||
asset_name: sunshine-ubuntu-22.04-amd64.deb
|
||||
|
||||
- name: get latest version
|
||||
uri:
|
||||
url: https://api.github.com/repos/LizardByte/Sunshine/releases/latest
|
||||
@ -11,42 +7,12 @@
|
||||
|
||||
- set_fact:
|
||||
assets: '{{latest.json.assets}}'
|
||||
asset_query: '[?contains(name, `{{asset_name}}`)] | [0]'
|
||||
- debug: var=assets
|
||||
- debug: var=asset_query
|
||||
- set_fact:
|
||||
asset: '{{assets | json_query(asset_query)}}'
|
||||
- debug: var=asset
|
||||
|
||||
- name: download deb file
|
||||
get_url:
|
||||
url: '{{asset.browser_download_url}}'
|
||||
dest: '/tmp/{{asset_name}}'
|
||||
- include_tasks: '{{ansible_os_family}}.yaml'
|
||||
|
||||
- name: install package from deb file
|
||||
become: true
|
||||
apt:
|
||||
deb: '/tmp/{{asset_name}}'
|
||||
|
||||
- name: remove deb file
|
||||
file:
|
||||
state: absent
|
||||
path: '/tmp/{{asset_name}}'
|
||||
|
||||
- name: fix systemd unit
|
||||
become: true
|
||||
copy:
|
||||
path: /usr/lib/systemd/user/sunshine.service
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Sunshine is a self-hosted game stream host for Moonlight.
|
||||
StartLimitIntervalSec=500
|
||||
StartLimitBurst=5
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/sunshine
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
|
||||
[Install]
|
||||
WantedBy=xdg-desktop-autostart.target
|
||||
- name: enable systemd service
|
||||
ansible.builtin.systemd_service:
|
||||
name: sunshine
|
||||
scope: user
|
||||
enabled: true
|
||||
state: started
|
||||
|
Loading…
x
Reference in New Issue
Block a user