114 lines
4.5 KiB
Markdown
114 lines
4.5 KiB
Markdown
# 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.
|
|
Client must have access to the internet (noproxy group).
|
|
* **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.
|
|
Client must have access to the internet (noproxy group).
|
|
* **Using your own repository and livebox tftp**
|
|
Additional kernel and Ramdisk from your own infrastrukture.
|
|
Client does not need direct internet access.
|
|
|
|
## Using codeberg repository and LinuxMuster.Net tftp
|
|
|
|
### Requirements / firewall settings
|
|
|
|
The computer on which the linuxclient is to be installed must have access to the Internet (add host to noproxy group)
|
|
|
|
The following resources are downloaded from the internet:
|
|
|
|
* The repository is provided by codeberg.org
|
|
* the Linux kernel, the initial ramdisk and the installation files are loaded from debian.org.
|
|
* mscorefonts from Microsoft
|
|
|
|
### 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
|
|
set vaultpw="dummy"
|
|
# echo -n "Enter vault password"
|
|
# read vaultpw
|
|
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/main/misc/preseed.cfg interface=auto \
|
|
playbook=lmn-client.yml adpw="${adpw}" vaultpw="${vaultpw}" ---
|
|
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 repository and LinuxMuster.Net tftp
|
|
|
|
If you fork the lmn-client repository, you can customize the preseeding and inventory to your needs.
|
|
Use the instructions in the previous section and customize the repository in `/srv/linbo/boot/grub/lmnclient.cfg`.
|
|
|
|
It makes sense to encrypt your inventory via `ansible-vault`.
|
|
When using encrypted inventories you have to provide the vault password by commenting in the two lines in the `/srv/linbo/boot/grub/lmnclient.cfg`.
|
|
|
|
## Using your own repository and livebox tftp
|
|
|
|
The next improvement will be to use your own livebox with following functionalities:
|
|
|
|
* Providing linux kernel and initial ramdisk for installer
|
|
* Can be used as cache for debian packages (aptcacher)
|
|
* Can provide mscorefonts and libdvdcss (multimedia codecs)
|
|
* Can be used to boot live systems (netboot) via pxe
|
|
|
|
### Installing the livebox server
|
|
|
|
* Install debian VM and configure network
|
|
* Install additional packages: ansible
|
|
`sudo apt install ansible`
|
|
* Run livebox playbook
|
|
`ansible-pull -i localhost, --url=https://salsa.debian.org/andi/debian-lan-ansible.git -C master livebox.yml`
|
|
* Set DNS entry for your new livebox server
|
|
|
|
### Modification LinuxMuster.Net server
|
|
|
|
The file `/srv/linbo/boot/grub/lmnclient.cfg` might look like this:
|
|
|
|
```
|
|
# ### 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
|
|
set vaultpw="dummy"
|
|
# echo -n "Enter vault password"
|
|
# read vaultpw
|
|
linux (http,livebox.example.com)/d-i/n-pkg/images/12/amd64/text/debian-installer/amd64/linux auto=true priority=high \
|
|
url=https://codeberg.org/MySchool/lmn-client/raw/branch/main/misc/preseed-myschool.cfg interface=auto \
|
|
playbook=lmn-client.yml adpw="${adpw}" vaultpw="${vaultpw}" ---
|
|
initrd (http,livebox.example.com)/d-i/n-pkg/images/12/amd64/text/debian-installer/amd64/initrd.gz
|
|
}
|
|
```
|