93 lines
3.1 KiB
Markdown
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.
|