From 2cbaef37fc66b5cabbf6ed8b0beb016a92d66914 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Fri, 6 Jan 2023 04:43:47 +0100 Subject: add now browser kiosk role --- chaos-at-home/ch-cm4-test.yml | 14 ++++ inventory/host_vars/ch-cm4-test.yml | 6 ++ roles/streaming/browser-kiosk/defaults/main.yml | 8 ++ roles/streaming/browser-kiosk/tasks/main.yml | 105 ++++++++++++++++++++++++ 4 files changed, 133 insertions(+) create mode 100644 chaos-at-home/ch-cm4-test.yml create mode 100644 roles/streaming/browser-kiosk/defaults/main.yml create mode 100644 roles/streaming/browser-kiosk/tasks/main.yml diff --git a/chaos-at-home/ch-cm4-test.yml b/chaos-at-home/ch-cm4-test.yml new file mode 100644 index 00000000..5ed9c0a6 --- /dev/null +++ b/chaos-at-home/ch-cm4-test.yml @@ -0,0 +1,14 @@ +--- +- name: Basic Setup + hosts: ch-cm4-test + roles: + - role: apt-repo/base + - role: core/base + - role: core/sshd/base + - role: core/zsh + - role: core/ntp + +- name: Payload Setup + hosts: ch-cm4-test + roles: + - role: streaming/browser-kiosk diff --git a/inventory/host_vars/ch-cm4-test.yml b/inventory/host_vars/ch-cm4-test.yml index 87b3a0f1..ba29e2e2 100644 --- a/inventory/host_vars/ch-cm4-test.yml +++ b/inventory/host_vars/ch-cm4-test.yml @@ -29,3 +29,9 @@ raspios_boot_config: line: 'dtoverlay=i2c-fan,emc2301,i2c_csi_dsi' base_entropy_generator: rngd + + +browser_kiosk_xinit_commands_extra: | + xrandr --output HDMI-1 --mode 1920x1080 --rate 50 + +browser_kiosk_url: "http://192.168.28.1:4001/output/ABCD" diff --git a/roles/streaming/browser-kiosk/defaults/main.yml b/roles/streaming/browser-kiosk/defaults/main.yml new file mode 100644 index 00000000..3fac47d2 --- /dev/null +++ b/roles/streaming/browser-kiosk/defaults/main.yml @@ -0,0 +1,8 @@ +--- +# browser_kiosk_xinit_commands_extra: | +# xrandr --output HDMI-1 --mode 1920x1080 --rate 50 + +browser_kiosk_url: "http://127.0.0.1:4001/output/ABCD" +browser_kiosk_run_script: | + #!/bin/sh + exec chromium '{{ browser_kiosk_url }}' --kiosk --disable-infobars --temp-profile --noerrdialogs --disable-crash-report --autoplay-policy=no-user-gesture-required --use-fake-ui-for-media-stream diff --git a/roles/streaming/browser-kiosk/tasks/main.yml b/roles/streaming/browser-kiosk/tasks/main.yml new file mode 100644 index 00000000..fbaf11f6 --- /dev/null +++ b/roles/streaming/browser-kiosk/tasks/main.yml @@ -0,0 +1,105 @@ +--- +- name: install packages + apt: + name: + - xserver-xorg + - xserver-xorg-video-all + - x11-xserver-utils + - xinit + - unclutter + - xterm + - ratpoison + - chromium + state: present + +- name: create kiosk user + user: + name: kiosk + home: /var/lib/kiosk + create_home: no + shell: /bin/sh + system: yes + groups: + - video + - render + state: present + +- name: create empty user dir for kiosk + file: + path: /var/lib/kiosk + state: directory + owner: kiosk + group: kiosk + +- name: install .xinitrc + copy: + content: | + xset dpms force on + xset dpms 0 0 0 + xset s off + xsetroot -solid '#000000' + + {% if browser_kiosk_xinit_commands_extra is defined %} + {{ browser_kiosk_xinit_commands_extra }} + + {% endif %} + unclutter & + ratpoison & + /var/lib/kiosk/run + dest: /var/lib/kiosk/.xinitrc + owner: kiosk + group: kiosk + +- name: install .profile + copy: + content: | + if [ -z "$DISPLAY" ]; then + case $(tty) in + /dev/tty1) + startx + exit 0 + ;; + esac + fi + dest: /var/lib/kiosk/.profile + owner: kiosk + group: kiosk + +- name: install .ratpoisonrc + copy: + content: | + set border 0 + dest: /var/lib/kiosk/.ratpoisonrc + owner: kiosk + group: kiosk + +- name: install run script + copy: + content: "{{ browser_kiosk_run_script }}" + dest: /var/lib/kiosk/run + owner: kiosk + group: kiosk + mode: 0755 + +- name: create override direcotry for getty@tty1 service unit + file: + path: /etc/systemd/system/getty@tty1.service.d + state: directory + +- name: generate override for getty@tty1 service unit + copy: + content: | + [Service] + ExecStart= + ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM + RestartSec=2 + StartLimitInterval=5 + StartLimitBurst=3 + dest: /etc/systemd/system/getty@tty1.service.d/autologin.conf + +- name: make sure getty@tty1 service unit is enabled and started + systemd: + daemon_reload: yes + name: getty@tty1.service + state: started + enabled: yes -- cgit v1.2.3