134 lines
4.5 KiB
Markdown
134 lines
4.5 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.
|
|
|
|
```{note}
|
|
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. (Hardware) Register the machine in Package-Fence: https://enter.psi.ch:1443 to give it access to the PSI network
|
|
1. (Hardware Machine / static ip address) Register a static ip in https://qip.psi.ch/qip (or via request to the Network Team (via ServiceNow)) for the console
|
|
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. Remember that you need a valid Kerberos ticket before modifying a sysdb entry via `bob`.
|
|
|
|
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. More details regaring `bob` can be found [here](https://git.psi.ch/linux-infra/bob).
|
|
|
|
## Hardware/VM Requirements
|
|
|
|
For hardware based system please check the Hardware compatibility page for
|
|
- [RHEL8](rhel8/hardware_compatibility.md)
|
|
- [RHEL9](rhel9/hardware_compatibility.md)
|
|
|
|
In any case these are the **minimal** system requirements:
|
|
- RHEL8
|
|
- RAM: 4GB
|
|
- Harddisk: 33GB
|
|
- RHEL9
|
|
- RAM: 4GB
|
|
- Harddisk: 64GB
|
|
|
|
## 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
|
|
FQDN=test.psi.ch
|
|
MAC_ADDRESS=00:00:00:00:00:00 # get this from the hardware or vcenter console
|
|
|
|
bob node add-mac $FQDN $MAC_ADDRESS
|
|
```
|
|
|
|
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
|
|
|
|
# if you want to use hiera groups and sub-groups
|
|
bob node set-attr $FQDN puppet_group=cluster
|
|
bob node set-attr $FQDN puppet_subgroup=compute
|
|
|
|
# use a differnt puppet environment
|
|
bob node set-attr $FQDN puppet_env=prod
|
|
```
|
|
|
|
|
|
### Example
|
|
|
|
Minimal example:
|
|
|
|
```bash
|
|
bob node add test.psi.ch lx netboot
|
|
bob node add-mac test.psi.ch 00:00:00:00:00:00
|
|
bob node set-attr test.psi.ch ipxe_installer=rhel8install puppet_role=role::server
|
|
|
|
# show the configuration
|
|
bob node list -v test.psi.ch
|
|
|
|
# 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.
|
|
|
|
|
|
## BIOS / UEFI Boot
|
|
|
|
All systems should use UEFI boot for booting! BIOS based boot should only be used where UEFI is not an option.
|
|
|
|
### UEFI
|
|
|
|
__NOTE:__ After the installation the boot order will be changed to localboot again! So if you reinstall make sure that you re-set the bootorder via the efi menu or the commandline: https://linux.die.net/man/8/efibootmgr
|
|
|
|
```bash
|
|
[root@lx-test-02 ~]# efibootmgr
|
|
BootCurrent: 0004
|
|
BootOrder: 0004,0002,0000,0001,0003
|
|
Boot0000* EFI Virtual disk (0.0)
|
|
Boot0001* EFI VMware Virtual SATA CDROM Drive (0.0)
|
|
Boot0002* EFI Network
|
|
Boot0003* EFI Internal Shell (Unsupported option)
|
|
Boot0004* Red Hat Enterprise Linux
|
|
|
|
[root@lx-test-02 ~]# efibootmgr --bootorder 2,4,0,1,3
|
|
```
|
|
|
|
(there is no need to have the leading 000 )
|