OLE study materials
OLE study resources

OLE: Oracle Linux Installation, Deployment, and System Configuration

OLE · Work through your exam, one topic at a time.

All guide sections

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>, and inst.ks=<url> or inst.ks=hd:LABEL=OEMDRV:/ks.cfg.
  • inst.ks makes the run unattended; without rootpw or 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.
  • %packages accepts environments (@^minimal-environment) and exclusions (-firewalld); %post --erroronfail runs inside the installed system's chroot; %pre runs in the installer environment.
  • Validate syntax offline with ksvalidator ks.cfg before 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 --initlabel on a blank disk fails partitioning.
  • A %post without --erroronfail hides failures; check /var/log/anaconda/.
  • autopart or clearpart --all destroys data if the target disk is wrong.
  • Choosing RHCK instead of the default UEK changes later module package names (kmod versus kmod-uek).