Files
gitea-pages/admin-guide/deployment/basic_installation.md
2024-08-08 13:07:25 +02:00

93 lines
3.1 KiB
Markdown

# Basic Installation
Linux systems are installed using PXE and Kickstart. The Kickstart
configuration is auto-generated base on the configuration stored in sysdb/bob.
When PXE boot is not an option, e.g. in restricted networks, it is possible to start iPXE from a USB stick or other media.
The general process for a installation is:
1. Register and configure the system with sysdb
2. Tell sysdb to perform an installation on the next boot
3. Reboot the system and trigger a PXE boot (usually by pressing F12 during
POST)
The default way to interact with sysdb is to use [bob](https://git.psi.ch/linux-infra/bob). `bob` is already set up on `lxsup.psi.ch` for general use.
Altenatively you many have on your workstation a local copy of `bob`. This can be done by installing the RPM from the pli-misc repository - https://repos.psi.ch/rhel8/latest/pli-misc/ or by installing the Python package manually.
You might need to set a `PSI_BOB_USER` environment variable (`export PSI_BOB_USER=<you-name-it>`) or use the option `--user` if your local user is different from the one on sysdb.
## Sysdb Configuration
Register node:
```bash
bob node add $FQDN $ENV netboot
```
To be able to PXE boot we need to configure at least one MAC address for the new node:
```bash
bob node add-mac $FQDN 00:50:56:aa:fe:9b
```
Finally we need to configure the installer to use, and the Puppet-related parameters:
```bash
bob node set-attr $FQDN ipxe_installer=rhel8install
bob node set-attr $FQDN puppet_role=role::server
```
and optional:
```bash
# static IP address (options: static, dhcp)
bob node set-attr $FQDN network=static
bob node set-attr $FQDN puppet_group=cluster
bob node set-attr $FQDN puppet_subgroup=compute
bob node set-attr $FQDN puppet_env=prod
```
Finally ensure that the node is set to `netboot`:
```bash
bob node netboot $FQDN
```
### Example
Minimal example:
```bash
bob node add lx-test-02.psi.ch lx netboot
bob node add-mac lx-test-02 00:50:56:9d:19:76
bob node set-attr lx-test-02.psi.ch ipxe_installer=rhel8install puppet_role=role::server
bob node netboot lx-test-02.psi.ch
# show the configuration
bob node list -v lx-test-02
# start network boot on the machine
```
### Special Settings
#### Custom Kernel Commandline Arguments
For custom kernel commandline arguments for the installer (e.g. to provide drivers) the sysdb attribute `kernel_cmdline` can be used:
```bash
bob node set-attr lx-test-02.psi.ch kernel_cmdline=inst.dd=https://linuxsoft.cern.ch/elrepo/dud/el8/x86_64/dd-megaraid_sas-07.725.01.00-1.el8_9.elrepo.iso
```
#### Custom Partitioning
Partitions system are configured with a standard schema using LVM, so that they can be possibly changed afterwards.
By default the whole space available on the first block device is used and any existing partition is removed.
Alternatively you might set the sysdb attribute `system_disk` with the device name of the disk which should be used instead::
```bash
bob node set-attr $FQDN system_disk=md126
```
It is also possible to customize the partitioning by using the `partitions` attribute on sysdb. See https://git.psi.ch/linux-infra/bob for more details.