init commit
This commit is contained in:
93
tasks/autologin.yaml
Normal file
93
tasks/autologin.yaml
Normal file
@ -0,0 +1,93 @@
|
||||
---
|
||||
|
||||
###############################################
|
||||
# Install packages and set up autologin
|
||||
|
||||
# Stop SDDM if running
|
||||
- name: autologin - stop sddm
|
||||
ignore_errors: yes
|
||||
systemd:
|
||||
name: sddm
|
||||
state: stopped
|
||||
|
||||
- name: autologin - purge user account
|
||||
ignore_errors: yes
|
||||
shell: "rm -R /home/{{ local_user }}"
|
||||
|
||||
- name: Autologin - run once section
|
||||
when: not refresh_special | bool
|
||||
block:
|
||||
|
||||
# Install Packages
|
||||
- name: autologin - Install Packages
|
||||
apt:
|
||||
name: "{{ kiosk_package_items }}"
|
||||
state: present
|
||||
loop: "{{ kiosk_packages }}"
|
||||
loop_control:
|
||||
loop_var: kiosk_package_items
|
||||
|
||||
# Remove Packages
|
||||
- name: autologin - Remove Packages
|
||||
apt:
|
||||
name: "{{ kiosk_package_remove_items }}"
|
||||
state: absent
|
||||
loop: "{{ kiosk_package_remove }}"
|
||||
loop_control:
|
||||
loop_var: kiosk_package_remove_items
|
||||
|
||||
# Set sddm as def
|
||||
- name: autologin - enable sddm in xdm
|
||||
debconf:
|
||||
name: sddm
|
||||
question: shared/default-x-display-manager
|
||||
value: sddm
|
||||
vtype: select
|
||||
|
||||
# sddm_method, should always run
|
||||
- name: Display cpu_architecture
|
||||
debug:
|
||||
msg: "cpu_architecture: {{ cpu_architecture }}"
|
||||
|
||||
- name: check OS name
|
||||
shell: cat /etc/os-release | grep VERSION_CODENAME | cut -d '=' -f 2
|
||||
register: debian_codename
|
||||
|
||||
- name: Set sddm_method if needed
|
||||
when: "'amd' in cpu_architecture and 'bookworm' in debian_codename.stdout"
|
||||
set_fact:
|
||||
sddm_method: "plasmawayland.desktop"
|
||||
|
||||
- name: Set sddm_method for x11
|
||||
when: force_x11 | bool
|
||||
set_fact:
|
||||
sddm_method: "plasmax11"
|
||||
|
||||
# Configure Autologin
|
||||
- name: autologin - configure autologin et. al.
|
||||
template:
|
||||
src: sddm.conf
|
||||
dest: /etc/sddm.conf
|
||||
mode: 0644
|
||||
|
||||
- name: autologin - check sddm config
|
||||
shell: cat /etc/sddm.conf
|
||||
register: sddm_check
|
||||
- debug:
|
||||
msg: "{{ sddm_check.stdout_lines }}"
|
||||
|
||||
###############################################
|
||||
# Apply Profile in separate file to keep things tidy
|
||||
# Create account and configure other settings like power and stuff
|
||||
|
||||
- name: autologin - apply user profile settings
|
||||
include_tasks: user_profile.yaml
|
||||
|
||||
# Restart sddm to initialize user profile
|
||||
- name: autologin - restart sddm
|
||||
systemd:
|
||||
enabled: yes
|
||||
name: sddm
|
||||
state: started
|
||||
|
||||
...
|
||||
30
tasks/chrome.yaml
Normal file
30
tasks/chrome.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
|
||||
###############################################
|
||||
# Install Chromium
|
||||
|
||||
- name: chrome - Install Chromium
|
||||
when: not refresh_special | bool
|
||||
apt:
|
||||
name: chromium
|
||||
state: present
|
||||
|
||||
- name: Chrome - fine chromium binary
|
||||
shell: "find /usr/bin/chromium*"
|
||||
register: find_chromium
|
||||
|
||||
- name: Chrome - change var if chromium
|
||||
# when: armcpu_check | bool
|
||||
set_fact:
|
||||
browser_binary: "{{ find_chromium.stdout_lines[0] }}"
|
||||
|
||||
###############################################
|
||||
# Configure Kiosks
|
||||
|
||||
- name: Set up Chrome Kiosk Services
|
||||
include_tasks: kiosk.yaml
|
||||
loop: "{{ kiosk_service_templates }}"
|
||||
loop_control:
|
||||
loop_var: kiosk_service_items
|
||||
|
||||
...
|
||||
50
tasks/kiosk.yaml
Normal file
50
tasks/kiosk.yaml
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
###############################################
|
||||
# Chrome Kiosk Config
|
||||
# intended to be called in a loop
|
||||
###############################################
|
||||
|
||||
- name: Chrome Kiosk - display kiosk_service_items
|
||||
debug:
|
||||
msg: "{{ kiosk_service_items }}"
|
||||
# - "Chrome Kiosk Configuring: {{ kiosk_service_items.service_description }}"
|
||||
# - "Kiosk Service Name: {{ kiosk_service_items.service_name }}"
|
||||
# - "Kiosk Service Options:"
|
||||
# - "{{ kiosk_service_items.extra_service_configs }}"
|
||||
# - "Chrome Website: {{ kiosk_service_items.chrome_website }}"
|
||||
# - "Chrome App Extra Configs:"
|
||||
# - "{{ kiosk_service_items.extra_chrome_configs }}"
|
||||
|
||||
# Create user data dir Folder
|
||||
- name: Chrome Kiosk - create working folder
|
||||
when: create_data_dir | bool
|
||||
file:
|
||||
path: "{{ kiosk_service_items.user_data_dir }}"
|
||||
state: directory
|
||||
mode: '0777'
|
||||
owner: "{{ local_user }}"
|
||||
group: "{{ local_user }}"
|
||||
|
||||
- name: Chrome Kiosk - user stop service if running
|
||||
command: "systemctl --user -M {{ local_user }}@ stop {{ kiosk_service_items.service_name }}.service"
|
||||
ignore_errors: true
|
||||
|
||||
- name: Chrome Kiosk - Copy chrome service file
|
||||
template:
|
||||
src: chrome-app.service
|
||||
dest: "/home/{{ local_user }}/.config/systemd/user/{{ kiosk_service_items.service_name }}.service"
|
||||
owner: "{{ local_user }}"
|
||||
group: "{{ local_user }}"
|
||||
mode: 0600
|
||||
|
||||
- name: Chrome Kiosk - user daemon reload
|
||||
command: "systemctl --user -M {{ local_user }}@ daemon-reload"
|
||||
register: user_daemon_reload
|
||||
|
||||
- name: Chrome Kiosk - user enable service
|
||||
command: "systemctl --user -M {{ local_user }}@ enable {{ kiosk_service_items.service_name }}.service"
|
||||
|
||||
- name: Chrome Kiosk - user start service
|
||||
command: "systemctl --user -M {{ local_user }}@ start {{ kiosk_service_items.service_name }}.service"
|
||||
|
||||
...
|
||||
47
tasks/main.yaml
Normal file
47
tasks/main.yaml
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
|
||||
- name: check arch if needed
|
||||
when: refresh_special | bool
|
||||
block:
|
||||
|
||||
- name: Video Capture - Check CPU Arch
|
||||
shell: "dpkg --print-architecture"
|
||||
register: cpu_architecture_output
|
||||
|
||||
- name: Set cpu_architecture variable
|
||||
set_fact:
|
||||
cpu_architecture: "{{ cpu_architecture_output.stdout_lines[0] }}"
|
||||
|
||||
- name: kiosk variable handler
|
||||
block:
|
||||
# when coming from jenkins overwrite the variable
|
||||
- name: include jenkins vars
|
||||
when: jenkins_kiosk | bool
|
||||
block:
|
||||
|
||||
- name: import jenkins var file
|
||||
include_vars:
|
||||
file: "{{ kiosk_yaml }}"
|
||||
name: kiosk_vars
|
||||
- debug:
|
||||
msg: "{{ kiosk_vars.kiosk_service_templates }}"
|
||||
|
||||
- name: overwrite kiosk_service_templates
|
||||
set_fact:
|
||||
kiosk_service_templates: "{{ kiosk_vars.kiosk_service_templates }}"
|
||||
|
||||
- name: check if multiple and set create_data_dir, force_x11 accordingly
|
||||
when: kiosk_service_templates | length > 1
|
||||
set_fact:
|
||||
create_data_dir: true
|
||||
force_x11: true
|
||||
- debug:
|
||||
msg: "{{ 'Multiple Services Requested, data directories will be created and X11 will be forced.' if kiosk_service_templates | length > 1 else 'Single page requested; no data directory and wayland may be used.' }}"
|
||||
|
||||
- name: Autologin Setup
|
||||
include_tasks: autologin.yaml
|
||||
|
||||
- name: Install KDE + Kiosk Services
|
||||
include_tasks: chrome.yaml
|
||||
|
||||
...
|
||||
63
tasks/user_profile.yaml
Normal file
63
tasks/user_profile.yaml
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
|
||||
########################################
|
||||
# Apply KDE settings to user profile
|
||||
########################################
|
||||
|
||||
#- name: autologin - create local user profile folder
|
||||
# file:
|
||||
# path: "/home/{{ local_user }}"
|
||||
# owner: "{{ local_user }}"
|
||||
# group: "{{ local_user }}"
|
||||
# state: directory
|
||||
# mode: '0700'
|
||||
|
||||
- name: autologin - Create User Service Folder and parents
|
||||
file:
|
||||
path: "/home/{{ local_user }}/.config/systemd/user"
|
||||
state: directory
|
||||
owner: "{{ local_user }}"
|
||||
group: "{{ local_user }}"
|
||||
mode: '0700'
|
||||
|
||||
- name: autologin - Disable kwallet
|
||||
copy:
|
||||
dest: "/home/{{ local_user }}/.config/kwalletrc"
|
||||
content: |
|
||||
[Wallet]
|
||||
Enabled=false
|
||||
owner: "{{ local_user }}"
|
||||
group: "{{ local_user }}"
|
||||
mode: '0700'
|
||||
|
||||
- name: autologin - configure power options
|
||||
copy:
|
||||
dest: "/home/{{ local_user }}/.config/powerdevilrc"
|
||||
content: |
|
||||
[AC][Display]
|
||||
DimDisplayIdleTimeoutSec=-1
|
||||
DimDisplayWhenIdle=false
|
||||
TurnOffDisplayIdleTimeoutSec=-1
|
||||
TurnOffDisplayWhenIdle=false
|
||||
|
||||
[AC][SuspendAndShutdown]
|
||||
AutoSuspendAction=0
|
||||
LidAction=0
|
||||
PowerButtonAction=0
|
||||
owner: "{{ local_user }}"
|
||||
group: "{{ local_user }}"
|
||||
mode: '0700'
|
||||
|
||||
- name: autologin - configure screen locking
|
||||
copy:
|
||||
dest: "/home/{{ local_user }}/.config/kscreenlockerrc"
|
||||
content: |
|
||||
[Daemon]
|
||||
Autolock=false
|
||||
LockOnResume=false
|
||||
Timeout=0
|
||||
owner: "{{ local_user }}"
|
||||
group: "{{ local_user }}"
|
||||
mode: '0700'
|
||||
|
||||
...
|
||||
Reference in New Issue
Block a user