Improve documentation
This commit is contained in:
parent
471ff52df0
commit
9a6a05e2d0
11 changed files with 195 additions and 84 deletions
12
README.md
12
README.md
|
@ -20,11 +20,23 @@ Ansible playbooks and roles to deploy Debian clients for LinuxMuster.
|
||||||
Starts local firewall and removes local directories of exam users the day after.
|
Starts local firewall and removes local directories of exam users the day after.
|
||||||
* [localhome](doc/localhome.md)
|
* [localhome](doc/localhome.md)
|
||||||
Sometimes a local home directory makes more sense than the home on a network share.
|
Sometimes a local home directory makes more sense than the home on a network share.
|
||||||
|
* [localproxy](doc/localproxy.md)
|
||||||
|
Creates a http-proxy running in user context and authentication on parent with users krb5-ticket.
|
||||||
* [localuser](doc/localuser.md)
|
* [localuser](doc/localuser.md)
|
||||||
Creates a local guest user with home on tmpfs.
|
Creates a local guest user with home on tmpfs.
|
||||||
|
* [misc_clonescreen](doc/misc_clonescreen.md)
|
||||||
|
CloneScreen on presenter PCs
|
||||||
* [vm_support](doc/vm_support.md)
|
* [vm_support](doc/vm_support.md)
|
||||||
VMs based on Qemu/KVM in school network.
|
VMs based on Qemu/KVM in school network.
|
||||||
* [vpn](doc/vpn.md)
|
* [vpn](doc/vpn.md)
|
||||||
Provides VPN access to school network.
|
Provides VPN access to school network.
|
||||||
* [wlan](doc/wlan.md)
|
* [wlan](doc/wlan.md)
|
||||||
Provides WLAN access via WPA Personal/Enterprise.
|
Provides WLAN access via WPA Personal/Enterprise.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Following possibilities:
|
||||||
|
|
||||||
|
* [Install client via PXE-Boot](doc/install_pxe.md)
|
||||||
|
* [Run playbook on existing client](doc/install_ontop.md)
|
||||||
|
* Install client via USB-Stick including ansible-playbook
|
||||||
|
|
|
@ -48,4 +48,3 @@ laptops:
|
||||||
- role_a
|
- role_a
|
||||||
- role_b
|
- role_b
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
Activating exam_mode provides following functionalities:
|
Activating exam_mode provides following functionalities:
|
||||||
* when -exam user logs in, firewalld.service will start and prevent communication between devices in the same local network
|
* when -exam user logs in, firewalld.service will start and prevent communication between devices in the same local network
|
||||||
* home- and media-directory of -exam users will be renamed (on the next day) and removed (after some days).\
|
* home- and media-directory of -exam users will be renamed (on the next day) and removed (after some days).
|
||||||
This is important due the fact, that -exam user will be new created (with new user-id) on exam-mode initialisation.\
|
This is important due the fact, that -exam user will be new created (with new user-id) on exam-mode initialisation.
|
||||||
Without renaming/deleting the home- and media-directory, the -exam user couldn't log in twice on the same pc.\
|
Without renaming/deleting the home- and media-directory, the -exam user couldn't log in twice on the same pc.
|
||||||
Particularly important on machines with localhome
|
Particularly important on machines with localhome
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
53
doc/install_ontop.md
Normal file
53
doc/install_ontop.md
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
# Installation on existing client
|
||||||
|
|
||||||
|
An easy method to test the lmn-client is to run the playbook manual on a fresh installed client.
|
||||||
|
|
||||||
|
## Direct call via ansible-pull
|
||||||
|
|
||||||
|
With two simple commands you can install the lmn-client with default configuration.
|
||||||
|
|
||||||
|
Steps:
|
||||||
|
|
||||||
|
* Install debian on client (via USB or PXE)
|
||||||
|
* Install additional packages: ansible
|
||||||
|
`sudo apt install ansible`
|
||||||
|
* Run Playbook
|
||||||
|
`ansible-pull -i inventory.yml -l localhost, --url=https://codeberg.org/DigitalSouveraeneSchule/lmn-client.git -C main lmn-client.yml`
|
||||||
|
|
||||||
|
## Checkout git and run ansible locally
|
||||||
|
|
||||||
|
When checking out the repository you can customize the installation by editing the inventory before run the playbook.
|
||||||
|
You can repeat the process as often as you like and gradually adapt your inventory settings to your needs.
|
||||||
|
|
||||||
|
Steps:
|
||||||
|
|
||||||
|
* Install debian on client (via USB or PXE)
|
||||||
|
* Install additional packages: ansible, git
|
||||||
|
`sudo apt install ansible git`
|
||||||
|
* Checkout Repository
|
||||||
|
`git clone https://codeberg.org/DigitalSouveraeneSchule/lmn-client.git`
|
||||||
|
* Create inventory
|
||||||
|
`cp inventory.yml inventory-myschool.yml`
|
||||||
|
* Edit inventory-myschool.yml
|
||||||
|
e.g.: `nano inventory-myschool.yml`
|
||||||
|
* Run Playbook
|
||||||
|
`ansible-playbook -i inventory-myschool.yml -l localhost lmn-client.yml`
|
||||||
|
|
||||||
|
## Run with other target device
|
||||||
|
|
||||||
|
If you want to run the play on an other target pc:
|
||||||
|
|
||||||
|
* You have to add the target IP or hostname in the inventory.
|
||||||
|
* SSH access on target must be configured (deploy ssh public-key on target host)
|
||||||
|
|
||||||
|
`ansible-playbook -i inventory-myschool.yml -l target lmn-client.yml`
|
||||||
|
|
||||||
|
## Upload changes to your own remote repository
|
||||||
|
|
||||||
|
If you are satisfied with your changes, you can upload the changes to your own remote repository.
|
||||||
|
|
||||||
|
* Create new git repository on your git service (e.g. https://codeberg.org)
|
||||||
|
* Add new remote origin
|
||||||
|
`git remote add myorigin git@codeberg.org:myname/mylmn-client.git`
|
||||||
|
* Push the repository to the new remote
|
||||||
|
`push -u myorigin main`
|
50
doc/install_pxe.md
Normal file
50
doc/install_pxe.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
# Installation via PXE/Grub
|
||||||
|
|
||||||
|
* **Using DigitalSouveraeneSchule repository and LinuxMuster.Net tftp**
|
||||||
|
Simplest solution. Playbook and default inventory from DigitalSouveraeneSchule codeberg repository.
|
||||||
|
Linux kernel and initial Ramdisk from debian repository.
|
||||||
|
* **Using your own repository and LinuxMuster.Net tftp**
|
||||||
|
Here you can use your own inventory and make many custom settings.
|
||||||
|
Linux kernel and initial Ramdisk from debian repository.
|
||||||
|
* **Using your own repository and livebox tftp**
|
||||||
|
Additional kernel and Ramdisk from your own infrastrukture.
|
||||||
|
|
||||||
|
## Using codeberg repository and LinuxMuster.Net tftp
|
||||||
|
|
||||||
|
### Modification LinuxMuster.Net server
|
||||||
|
|
||||||
|
Create grub config for device group `lmnclient` on your schools server:
|
||||||
|
|
||||||
|
/srv/linbo/boot/grub/lmnclient.cfg
|
||||||
|
```
|
||||||
|
# ### NOT managed by linuxmuster.net ###
|
||||||
|
|
||||||
|
# edit to your needs
|
||||||
|
set default=1
|
||||||
|
|
||||||
|
menuentry 'Installer Debian bookworm (amd64) + preseed + ansible inventory' {
|
||||||
|
echo -n "Enter domain join password: "
|
||||||
|
read adpw
|
||||||
|
linux (http,ftp.debian.org)/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux auto=true priority=high \
|
||||||
|
url=https://codeberg.org/DigitalSouveraeneSchule/lmn-client/raw/branch/fvs/misc/preseed.cfg interface=auto \
|
||||||
|
playbook=lmn-client.yml adpw="${adpw}" ---
|
||||||
|
initrd (http,ftp.debian.org)/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Insert host in devices.csv and set device group to `lmnclient`:
|
||||||
|
|
||||||
|
devices.csv
|
||||||
|
```
|
||||||
|
classroom;mypc01;lmnclient;F2:81:6B:C9:E3:EF;10.0.5.51;;;;classroom-studentcomputer;;1;;;;;
|
||||||
|
```
|
||||||
|
|
||||||
|
### On client PC
|
||||||
|
|
||||||
|
* In BIOS-Setting: Set boot to UEFI
|
||||||
|
* Start via PXE
|
||||||
|
* When asked for domain-join-password: Enter password of `global-admin`
|
||||||
|
* confirm `hostname` and `domain` (you will be asked in network setup)
|
||||||
|
* ... Get a cup of coffee ... wait until reboot ... login (Logging in may take a few minutes after installation)
|
||||||
|
|
||||||
|
## Using your own livebox server
|
|
@ -33,9 +33,6 @@ To enable the local home directory, set the variable `localhome` to `true` (defa
|
||||||
* `false`
|
* `false`
|
||||||
* `true` <-- (default)
|
* `true` <-- (default)
|
||||||
|
|
||||||
|
|
||||||
localhome_logout_missing_serverhome
|
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
* Hosts in group `laptops` will get the localhome. Teacherlaptops will be part of the `laptop` group (children-entry).
|
* Hosts in group `laptops` will get the localhome. Teacherlaptops will be part of the `laptop` group (children-entry).
|
||||||
|
|
|
@ -10,7 +10,7 @@ VMs based on Qemu/KVM in school network.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* For distribution of VMs, you have to run a `seedbox` with aria2 server (torrent server).\
|
* For distribution of VMs, you have to run a `seedbox` with aria2 server (torrent server).
|
||||||
Repository with ansible-playbook for seedbox install: https://codeberg.org/digitalsouveraeneschule/...
|
Repository with ansible-playbook for seedbox install: https://codeberg.org/digitalsouveraeneschule/...
|
||||||
* `seedbox`-hostname must be resolvable via DNS
|
* `seedbox`-hostname must be resolvable via DNS
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue