initial commit, carputer ansible role

This commit is contained in:
2025-07-26 15:09:47 -07:00
commit b81872440f
17 changed files with 526 additions and 0 deletions

View File

@ -0,0 +1,76 @@
---
###############################################
# Install KDE and other additional packages
# Install Packages
- name: prereqs - install packages including KDE, will be slow
apt:
name: "{{ item }}"
state: present
loop: "{{ packages }}"
# Set sddm as def
- name: prereqs - enable sddm in xdm
debconf:
name: sddm
question: shared/default-x-display-manager
value: sddm
vtype: select
# enable sddm service
- name: prereqs - enable sddm
systemd:
name: sddm
enabled: yes
state: started
# Configure Autologin
- name: prereqs - configure autologin et. al.
template:
src: sddm.conf.j2
dest: /etc/sddm.conf
mode: 0644
###############################################
# Install Chrome
- name: prereqs - Chrome - Check if installed
command: dpkg -l google-chrome-stable
register: chrome_installed
ignore_errors: true
- name: prereqs - Chrome - Set chrome_present variable
set_fact:
chrome_present: "{{ chrome_installed.rc == 0 }}"
- name: prereqs - Install Chrome
include_tasks: /var/jenkins_home/ansible/roles/install_apps/tasks/chrome.yaml
when: not chrome_present | bool
###############################################
# Apply Profile
# Create Cosmos user folder
- name: prereqs - create cosmos user profile folder
file:
path: /home/cosmos
owner: cosmos
group: cosmos
state: directory
mode: '0700'
# Extract profile
- name: prereqs - extract cosmos user profile
unarchive:
src: /var/jenkins_home/ansible-files/lldp_scan/cosmos.tar.gz
dest: /home
owner: cosmos
group: cosmos
mode: 0700
# Restart sddm to initialize user profile
- name: prereqs - restart sddm
systemd:
name: sddm
state: restarted
...

61
tasks/kiosk.yaml Normal file
View File

@ -0,0 +1,61 @@
---
###############################################
# Chrome Kiosk Config
# This creates the service and configures the user profile
###############################################
- name: lldp - apache - clear www
command: rm -R /var/www/html
# Copy Web Server Files
- name: lldp - apache - web - copy files
copy:
src: "{{ item }}"
dest: /var/www/html/
owner: www-data
mode: 0755
with_fileglob:
- "/var/jenkins_home/ansible/roles/lldp_scan/files/www/*"
- name: Chrome Kiosk - Create User Service Folder
file:
path: /home/cosmos/.config/systemd/user
state: directory
owner: cosmos
group: cosmos
mode: '0700'
- name: Chrome Kiosk - user stop service
command: systemctl --user -M cosmos@ stop chrome.service
register: user_start_chrome
ignore_errors: true
- name: Chrome Kiosk - Kill chrome if running otherwise
command: pkill chrome
ignore_errors: true
- name: Chrome Kiosk - Copy chrome service file
template:
src: chrome-app.service.j2
dest: /home/cosmos/.config/systemd/user/chrome.service
owner: cosmos
group: cosmos
mode: 0600
- name: Chrome Kiosk - user daemon reload
command: systemctl --user -M cosmos@ daemon-reload
register: user_daemon_reload
ignore_errors: true
- name: Chrome Kiosk - user enable service
command: systemctl --user -M cosmos@ enable chrome.service
register: user_enable_chrome
ignore_errors: true
- name: Chrome Kiosk - user start service
command: systemctl --user -M cosmos@ start chrome.service
register: user_start_chrome
ignore_errors: true
...

23
tasks/main.yaml Normal file
View File

@ -0,0 +1,23 @@
---
###########################################################
# Playbook for configuring GOLE as Road Trip Carputer
###########################################################
# Steps:
### uStreamer
### Timelapse Service
### Sharing Page
### Cosmos Autologin
### Top Cam Feed Kiosk
### Bottom Service Control Panel
# select display_name, city, state, postcode from addresses order by id desc limit 1;
# curl -s http://10.18.1.1:8184/wheres_gali?api_key=srJraFFprHadzQTDZf5hrmXh
- name: Carputer Early Tasks
include_tasks:
- ustreamer.yaml
- timelapse.yaml
- php_site.yaml
...

0
tasks/php_site.yaml Normal file
View File

15
tasks/timelapse.yaml Normal file
View File

@ -0,0 +1,15 @@
---
- name: Create user
user:
name: "timelapse"
state: present
shell: /bin/bash
groups: video
...

34
tasks/ustreamer.yaml Normal file
View File

@ -0,0 +1,34 @@
---
- name: Install Packages
apt:
name:
- ustreamer
state: present
register: apt_result
ignore_errors: true
- name: Create user
user:
name: "ustreamer"
state: present
shell: /bin/bash
groups: video
- name: create service file
template:
src: ustreamer.service.j2
dest: /etc/systemd/system/ustreamer.service
owner: root
group: root
mode: 0644
- name: Enable and start service
become: true
systemd:
daemon_reload: yes
state: started
enabled: yes
name: ustreamer
...