# 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=`) 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 ``` ### 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 Please check out the [Partitioning page](partitioning).