summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chaos-at-home/ch-cm4-test.yml14
-rw-r--r--inventory/host_vars/ch-cm4-test.yml6
-rw-r--r--roles/streaming/browser-kiosk/defaults/main.yml8
-rw-r--r--roles/streaming/browser-kiosk/tasks/main.yml105
4 files changed, 133 insertions, 0 deletions
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