feat: Install 50ohm webserver, download the content and install the final, static website

This commit is contained in:
Lars Weiler
2026-02-07 23:53:28 +01:00
commit 238bb38a6c
20 changed files with 578 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
- name: Include tasks from users.yml
ansible.builtin.include_tasks: users.yml
- name: Include tasks from packages.yml
ansible.builtin.include_tasks: packages.yml
+9
View File
@@ -0,0 +1,9 @@
- name: Install packages
ansible.builtin.package:
name:
- python3-venv
- python3-pip
- acl
- nginx
- uv
state: present
+45
View File
@@ -0,0 +1,45 @@
- name: Ensure 'sudo' group exists
ansible.builtin.group:
name: sudo
state: present
- name: Create users from users.yml
ansible.builtin.user:
name: "{{ item.name }}"
shell: "{{ item.shell | default('/bin/bash') }}"
password: "!"
update_password: on_create
groups:
- sudo
state: present
loop: "{{ users | flatten(levels=1)}}"
- name: Add SSH keys for users
ansible.builtin.authorized_key:
user: "{{ item.name }}"
state: present
key: "{{ item.sshkeys }}"
loop: "{{ users | flatten(levels=1) }}"
- name: Ensure sudo group has passwordless sudo access
ansible.builtin.lineinfile:
path: /etc/sudoers.d/sudo-nopasswd
state: present
create: true
line: "%sudo ALL=(ALL) NOPASSWD: ALL"
validate: '/usr/sbin/visudo -cf %s'
mode: '0440'
- name: Ensure sudoers uses sudoers.d
ansible.builtin.lineinfile:
path: /etc/sudoers
state: present
line: "@includedir /etc/sudoers.d"
validate: '/usr/sbin/visudo -cf %s'
- name: Ensure ex-users are removed
ansible.builtin.user:
name: "{{ item }}"
state: absent
remove: true
loop: "{{ ex_users | flatten(levels=1) }}"