playbook working, tidying up task order

This commit is contained in:
2025-11-02 23:33:13 -08:00
parent 378b740d93
commit c6d51f2a49
14 changed files with 220 additions and 375 deletions

View File

@ -13,7 +13,7 @@
state: directory
mode: '0700'
- name: autologin - "create {{ autologin_user }} .bashrc"
- name: autologin - "create {{ autologin_user }} .bash_aliases"
copy:
#dest: "/home/{{ autologin_user }}/.bash_aliases"
dest: "/home/{{ autologin_user }}/.bash_aliases"
@ -39,6 +39,34 @@
when: not quick_refresh | bool
include_tasks: hello_there.yaml
- name: autologin - script permission settings
when: not service_only | bool
block:
- name: User setup - update permissions on smartctl 1
shell: "chmod 755 /usr/sbin/smartctl"
- name: autologin - User setup - update permissions on smartctl 2
shell: "chmod u+s /usr/sbin/smartctl"
- name: autologin - User setup - update permissions on fdisk
shell: "chmod u+s /usr/sbin/fdisk"
- name: autologin - User setup - create symlink for smartctl
ignore_errors: yes
shell: "ln /usr/sbin/smartctl /usr/bin/smartctl"
- name: autologin - User setup - create symlink for fdisk
ignore_errors: yes
shell: "ln /usr/sbin/fdisk /usr/bin/fdisk"
- name: autologin - "User setup - allow {{ autologin_user }} to smartctl"
copy:
dest: /etc/sudoers.d/smartctl
content: |
{{ autologin_user }} ALL=(ALL) NOPASSWD: /usr/sbin/smartctl
{{ autologin_user }} ALL=(ALL) NOPASSWD: /usr/sbin/fdisk
- name: autologin - Restart getty@tty1 service
systemd:
name: getty@tty1.service

View File

@ -3,49 +3,42 @@
# This part sets up drive history dashboard
###############################################
- name: drive history dashboard web files
- name: drive history dashboard - set docker folder variable
set_fact:
service_control_web_folder: "{{ service_folder }}/web"
# Create docker Folder
- name: drive history dashboard - create service_control_web_folder folder
file:
path: "{{ service_control_web_folder }}"
state: directory
mode: '0755'
owner: root
group: root
- name: drive history dashboard - copy files for docker container
copy:
src: "dashboard/"
dest: "{{ service_control_web_folder }}/html"
mode: 0755
owner: root
group: root
- name: docker container
when: not quick_refresh | bool
block:
- name: drive history dashboard - set docker folder variable
set_fact:
service_control_web_folder: "{{ service_folder }}/web"
- name: service_control_website - template docker-compose.yaml
template:
src: docker-compose-php.yaml
dest: "{{ service_control_web_folder }}/docker-compose.yaml"
mode: 0644
# Create docker Folder
- name: drive history dashboard - create service_control_web_folder folder
file:
path: "{{ service_control_web_folder }}"
state: directory
mode: '0755'
owner: root
group: root
- name: drive history dashboard - copy files for docker container
copy:
src: "dashboard/"
dest: "{{ service_control_web_folder }}/html"
mode: 0755
owner: root
group: root
###############################################
# Start service_control_website
###############################################
- name: start drive history dashboard
when: not quick_refresh | bool
block:
- name: service_control_website - template config
template:
src: docker-compose-php.yaml
dest: "{{ service_control_web_folder }}/docker-compose.yaml"
mode: 0644
- name: "service_control_website - Start container at 0.0.0.0:{{ container_http_port }}"
shell: "docker-compose -f {{ service_control_web_folder }}/docker-compose.yaml up -d"
register: docker_output
- debug: |
msg="{{ docker_output.stdout_lines }}"
msg="{{ docker_output.stderr_lines }}"
- name: "service_control_website - Start container at {{ container_http_port }}"
shell: "docker-compose -f {{ service_control_web_folder }}/docker-compose.yaml up -d"
register: docker_output
- debug: |
msg="{{ docker_output.stdout_lines }}"
msg="{{ docker_output.stderr_lines }}"
...

View File

@ -1,15 +1,5 @@
---
- name: Drive Index - Install Packages
when: not quick_refresh | bool
apt:
name:
- "{{ ssd_health_packages_item }}"
state: present
loop: "{{ ssd_health_packages }}"
loop_control:
loop_var: ssd_health_packages_item
- name: Drive Index - file and folder handler
block:
@ -90,46 +80,4 @@
state: started
enabled: yes
- name: Drive Index - kiosk mode handler
when: install_kiosk | bool or service_only | bool
block:
- name: Drive Index - set sleep_time to 1
set_fact:
sleep_time: "1"
- name: "Drive Index - template drive_check.sh again"
template:
src: drive_check.sh
dest: "{{ service_folder }}/drive_check.sh"
mode: 0755
owner: "{{ autologin_user }}"
group: "{{ autologin_user }}"
- name: "Drive Index - {{ kiosk_service_name }}.service - stop service if running"
ignore_errors: yes
systemd:
name: "{{ kiosk_service_name }}.service"
state: stopped
- name: "Drive Index - template {{ kiosk_service_name }}.service"
vars:
service_name: "{{ kiosk_service_name }}"
service_working_folder: "{{ service_folder }}"
service_exe: "{{ kiosk_service_exe }}"
template:
src: "service_template.service"
dest: "/etc/systemd/system/{{ kiosk_service_name }}.service"
mode: 0644
- name: "Drive Index - {{ kiosk_service_name }} - daemon reload"
systemd:
daemon_reload: yes
- name: "Drive Index - {{ kiosk_service_name }} - enable and start service api"
systemd:
name: "{{ kiosk_service_name }}.service"
state: started
enabled: yes
...

30
tasks/initialiaze.yaml Normal file
View File

@ -0,0 +1,30 @@
---
- name: Initialiaze - Install Packages
when: not quick_refresh | bool
apt:
name:
- "{{ ssd_health_packages_item }}"
state: present
loop: "{{ ssd_health_packages }}"
loop_control:
loop_var: ssd_health_packages_item
- name: "Initialiaze - create {{ autologin_user }} user"
when: not quick_refresh | bool
user:
name: "{{ autologin_user }}"
groups: disk
password: "{{ autologin_password | password_hash('sha512') }}"
shell: /bin/bash
- name: "Initialiaze - ensure {{ autologin_user }} home folder exists"
when: not quick_refresh | bool
file:
path: "/home/{{ autologin_user }}"
state: directory
owner: "{{ autologin_user }}"
group: "{{ autologin_user }}"
mode: '0700'
...

View File

@ -1,14 +1,14 @@
---
# create and configure user account
- name: Drive health - set up user account
include_tasks: user_setup.yaml
- name: Drive health - initialize early steps
include_tasks: initialiaze.yaml
# create drive index service
- name: Drive health - drive_index service
include_tasks: drive_index.yaml
# create drive history dashboard
# create drive history web dashboard
- name: Drive health - drive history dashboard
include_tasks: dashboard.yaml
@ -17,5 +17,25 @@
when: not install_kiosk | bool or not service_only | bool
include_tasks: autologin.yaml
# configure service-mode
- name: Drive health - configure autologin
when: install_kiosk | bool or service_only | bool
include_tasks: service_mode.yaml
# Install chrome kiosk
- name: install chromium kiosk
when: install_kiosk | bool and not service_only | bool
include_role:
name: "chrome_kiosk"
vars:
refresh_special: "{{ quick_refresh }}"
# kiosk_service_templates:
# - chrome_website: "http://0.0.0.0:8088"
# service_name: ssh_dashboard
# service_description: "SSH Health History Dashboard"
# user_data_dir: ""
# extra_service_configs: ""
# extra_chrome_configs: ""
...

33
tasks/no_autologin.yaml Normal file
View File

@ -0,0 +1,33 @@
---
- name: autologin - edit logind to reduce vterms to one
lineinfile:
dest: /etc/systemd/logind.conf
regexp: '^#NAutoVTs='
line: 'NAutoVTs=6'
backrefs: yes
- name: autologin - create getty tty1 service folder
file:
path: /etc/systemd/system/getty@tty1.service.d/
state: directory
mode: '0700'
- name: autologin - "delete {{ autologin_user }} .bash_aliases"
shell: "rm /home/{{ autologin_user }}/.bash_aliases"
- name: autologin - remove autologin override to getty tty1 service
shell: "rm /etc/systemd/system/getty@tty1.service.d/override.conf"
- name: autologin - "User setup - allow {{ autologin_user }} to smartctl"
shell: "rm /etc/sudoers.d/smartctl"
- name: autologin - Restart getty@tty1 service
systemd:
name: getty@tty1.service
state: restarted
enabled: true
masked: false
daemon_reload: true
...

44
tasks/service_mode.yaml Normal file
View File

@ -0,0 +1,44 @@
---
# This will run the drive_check.sh script as a service instead of the autologin
- name: Service Mode - set sleep_time to 1
set_fact:
sleep_time: "1"
- name: "Service Mode - template drive_check.sh again"
template:
src: drive_check.sh
dest: "{{ service_folder }}/drive_check.sh"
mode: 0755
owner: "{{ autologin_user }}"
group: "{{ autologin_user }}"
- name: "Service Mode - {{ kiosk_service_name }}.service - stop service if running"
ignore_errors: yes
systemd:
name: "{{ kiosk_service_name }}.service"
state: stopped
- name: "Service Mode - template {{ kiosk_service_name }}.service"
vars:
service_name: "{{ kiosk_service_name }}"
service_working_folder: "{{ service_folder }}"
service_exe: "{{ kiosk_service_exe }}"
template:
src: "service_template.service"
dest: "/etc/systemd/system/{{ kiosk_service_name }}.service"
mode: 0644
- name: "Service Mode - {{ kiosk_service_name }} - daemon reload"
systemd:
daemon_reload: yes
- name: "Service Mode - {{ kiosk_service_name }} - enable and start service api"
systemd:
name: "{{ kiosk_service_name }}.service"
state: started
enabled: yes
- name: Service Mode - remove autologin
include_tasks: no_autologin.yaml
...

View File

@ -1,43 +0,0 @@
---
- name: "User setup - create {{ autologin_user }} user"
when: not quick_refresh | bool
user:
name: "{{ autologin_user }}"
groups: disk
password: "{{ autologin_password | password_hash('sha512') }}"
shell: /bin/bash
- name: "User setup - ensure {{ autologin_user }} home folder exists"
when: not quick_refresh | bool
file:
path: "/home/{{ autologin_user }}"
state: directory
owner: "{{ autologin_user }}"
group: "{{ autologin_user }}"
mode: '0700'
- name: User setup - autologin needed stuff
when: not service_only | bool
block:
- name: User setup - update permissions on smartctl & fdisk
shell: |
chmod 755 /usr/sbin/smartctl
chmod u+s /usr/sbin/smartctl
chmod u+s /usr/sbin/fdisk
- name: User setup - create symlink for smartctl & fdisk
ignore_errors: yes
shell: |
ln /usr/sbin/smartctl /usr/bin/smartctl
ln /usr/sbin/fdisk /usr/bin/fdisk
- name: "User setup - allow {{ autologin_user }} to smartctl"
copy:
dest: /etc/sudoers.d/smartctl
content: |
{{ autologin_user }} ALL=(ALL) NOPASSWD: /usr/sbin/smartctl
{{ autologin_user }} ALL=(ALL) NOPASSWD: /usr/sbin/fdisk
...