--- - 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 }}'