Oracle Linux Installation, Deployment, and System Configuration
This domain tests how Oracle Linux gets onto a machine and how the resulting system is shaped: the Anaconda installer, unattended deployment with Kickstart, kernel selection (UEK versus the Red Hat Compatible Kernel), and post-install configuration.
Installer mechanics
- Anaconda runs graphically or in text mode; boot-line options include
inst.text,inst.graphical,inst.repo=<url>, andinst.ks=<url>orinst.ks=hd:LABEL=OEMDRV:/ks.cfg. inst.ksmakes the run unattended; withoutrootpwor an equivalent, a text install stalls waiting for input.- Every finished install writes its own recipe to
/root/anaconda-ks.cfg; installer logs live under/var/log/anaconda/.
Kickstart structure
- Command section:
text,lang,keyboard,timezone,rootpw --iscrypted,user --name=deploy --groups=wheel --iscrypted,selinux --enforcing,firewall --enabled --service=ssh,services --enabled=chronyd,clearpart --all --initlabel,ignoredisk --only-use=vda. - Storage:
part /boot --fstype=xfs --size=1024,part pv.01 --size=1 --grow,volgroup vg_sys pv.01,logvol / --vgname=vg_sys --name=lv_root --size=10240,logvol swap --vgname=vg_sys --name=lv_swap --size=4096. %packagesaccepts environments (@^minimal-environment) and exclusions (-firewalld);%post --erroronfailruns inside the installed system's chroot;%preruns in the installer environment.- Validate syntax offline with
ksvalidator ks.cfgbefore booting anything.
Worked example
You must build 20 identical database hosts. The fragment above creates fixed-size LVM volumes, opens sshd in firewalld, forces SELinux enforcing, and a %post --erroronfail block runs dnf -y install oracle-database-preinstall-19c plus systemctl enable --now chronyd. Reasoning: sizes are MiB, --grow consumes the remaining disk, and --erroronfail aborts the build instead of leaving a silently broken host.
Traps
- Omitting
--initlabelon a blank disk fails partitioning. - A
%postwithout--erroronfailhides failures; check/var/log/anaconda/. autopartorclearpart --alldestroys data if the target disk is wrong.- Choosing RHCK instead of the default UEK changes later module package names (
kmodversuskmod-uek).