# 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 )