This was last updated on 1/2/2021.

  • Installation
    • Kickstart – Automate installs
      • A kickstart file is an instruction file on how to install the operating system
      • Included instruction for
        • Creating partitions
        • Creating Users
        • Preparing network settings
        • Installing software
      • When an install is completed a kickstart file is saved to /root reflecting all settings used.
        • anaconda-ks.cfg
      • Delivery methods
        • HTTP server
        • FTP server
        • ramdisk
      • Unattended commands
        • sudo virt-install
        • –name centos-ks
        • –ram 2048
        • –disk path=[path],format=[format],size=[size of disk]
        • –location=[path of ISO]
        • –nographics
        • –intrd-inject=[kickstart file path]
        • –extra-args=[?file path] ip=[dhcp/other options] console=tty0 console= ttyS0,1152008n8″
        • –os-variant=
  • Understand and use essential tools
    • handling files
      • Create
      • Edit
      • Archive and compress files
        • tar
        • star
        • gzip
        • bzip2
    • Directories
      • Create
      • Delete
      • Copy
      • Move
    • Command-line environments
      • Input-Output Redirection
        • >, >>, |, 2>, etc..
      • File Management
    • Documentation
      • Locate, read and use system documentation
        • Man
        • Info
        • /usr/share/doc
    • Schedule recurring tasks
    • Access a shell prompt
    • Issue commands with correct syntax
    • Grep and regular expressions
    • Access remote systems using SSH
    • Create hard and soft links
  • Create simple shell scripts
    • BASH
    • Python
    • Lua
    • Tcl
    • Ruby
  • Operate running systems, including
    • booting into different run levels
      • Different targets manually
    • identifying/Manage processes
      • Intensive processes
      • kill process
    • starting and stopping services and virtual machines
      • Network services
    • Controlling services
    • Interrupt the boot process to gain access
    • Locate and interpret/Read log files and journals
    • Boot, reboot, and shut down a system normally
    • Process scheduling
    • Manage tuning profiles
    • Save system journals
    • Transfer files between systems
    • Virtualization
      • KVM – Kernal-based Virtual Machine
        • Used to host guest machines/Hypervisor
        • Provides
          • Overcommitting of physical resources
            • HDD
            • CPU
            • RAM Memory
          • Agent on the guest to communicate with the hypervisor
          • Disk I/O throttling
          • Virtual CPU hot add
          • Nested virtualization (not recommended of production)
        • Multiple types of devices
          • Differnt types of devices can appear in multiple categories with different benefits and downsides. 
          • Virtualized
            • CPU
              • Supports 240 virtual CPUs
              • Passes CPU instruction to host CPU
              • CPU instruction run at full speed in guest
          • Paravirtualized (Fast)
            • Device Types
              • Network Cards (virtio-net)
              • Block device (virtio-blk)
              • Controller device (virtio-scsi)
              • Serial device (virtio-serial)
              • Graphics card (QXL)
            • Devices talk directly to the hypervisor using hyper calls
            • Requires paravirtualized drives for the device(s)
          • Emulated (Slow)
            • Look like real devices in VM but are virtualized in software
            • Type of devices (A sample of the device but there are more see the official documentation for full list)
              • Host PCI bridge
              • PS/2 mouse and keyboard
              • USB graphics tablet
              • USB controller and USB hub
              • Serial ports
              • IDE block device
              • Floppy disk device
              • HDA sound device
              • Logic PCI video card
              • Network adapter
          • Shared (passthrough/Physically shared)
            • No other machine will have access to the device if passed through
            • Type of devices
              • USB
              • PCI
              • SCSI
              • PCI Express function passthrough
                • Cards that have multiple functions such as SCSI and USB could be passed to different VM devices
          • Storage Resource Pools
            • Pools are comprised of
              • Local nonshared disks
              • Remote shared disks
            • VM migration requires remote shared storage
              • This is used if OS are wanted or needed to be migrated on the fly.
      • QEMU – Quick Emulator 
        • Used to emulate virtual devices
      • Virtualization Management Tools
        • Management tools do not need to reside on the device that the virtual hosts are running on. 
        • virt-manager
          • A graphical tool for managing virtual machines.
        • virsh (CLI)
          • Management and control hypervisors and virtual machines for the command line.
        • libvirt
          • Server and host side libraries used for interacting with hypervisor and host systems.
          • Uses API to monitor and manage:
            • Virtual CPUs
            • VM Memory
            • Virtual storage
            • Virtual networking
        • libvirt-client
          • Provides the client side libraries for access libvirt servers and includes virsh
        • Virtual Machine Manager (GUI)
        • virt-install
          • Used for command-line installation
        • qemu-kvm
          • Provides the user level kvm emulator
          • Facilitates communication between host and guest virtual machines
      • Install application
        • sudo yum install qeum-kvm libvirt virt-manager libvirt-client
        • Install by group
          • sudo yum install “Virtualization Client”
            • gnome-boxes
            • virt-install
            • virt manager
            • virt-top
            • virt-viewer
            • quem image
            • libvirt
            • libvirt-client
            • libvert-python
            • Dependencies
      • Start service and make it persistent
        • sudo systemctl start libvirtd
        • sudo systemctl enable libvirtd
      • Create a new Virtual Machine
        • Virtual Machine Manager
          • Applicaation>System Tools>Virtual Machine Manger
          • Click the “Create a new virtual machine” icon
            • Or File>New Virtual Machine
          • Choose how to install OS
            • Local
              • Using this option for this example
            • Network
            • Network Boot
            • Import existing disk image
          • Browse for image
          • Set Memory and CPU(s)
          • Set disk image size
          • Set Name choose a network.
  • Configure
    • Local storage
      • Physical volumes
        • Create
        • Delete/Remove
        • Assign to volume groups
      • Partitions
        • Create
        • Delete
    • Logical volumes management
      • Create
      • Delete
    • Networking
    • Bootup/modify bootloader
    • List, create, delete partitions
      • MBR
      • GPT
    • Mount file systems at boot
      • Universally unique ID (UUID)
      • Label
    • Swap to a system non-destructively
  • Create and configure
    • file systems and file system attributes, such as
      • permissions
        • List, set and change ugo/rwx permissions
        • Diagnose and correct problems
      • Encryption
        • C2R
          • grub- crypt –sha-512
      • Compression
      • Manage layered storage
      • Access control lists
      • Network file systems
        • Mount and unmount
        • NFS
      • Securely transfer files
      • Create and configure
        • Format
        • Mount
        • Unmount
        • File system types
          • vfat
          • ext4
          • xfs
      • Manage SUID, SGID and sticky bits
      • Set-GID directories for collaboration
        • Create
        • Configure
      • Extend existing logical volumes
  • Deploy, configure, and maintain systems
    • Software
      • Installation
      • Updates
      • Redhat network, remote repository or local file system
      • Work with package module streams
    • Core services/kernel packages
    • Linux system Virtual guests
      • Access virtual machine’s console
      • Start/stop virtual machines
    • CRON
      • Scheduling task
    • Start/stop services
      • Start service at boot
    • Boot into a specific target automatically
      • Modify the system bootloader
    • NTP
  • Manage users and groups
    • Create
    • Delete
    • Modify
    • Local Groups and group memberships
      • Create
      • Delete
      • Modify
    • Password/password aging
    • Use Authentication Systems
    • Log in and switch users in the multiuser target
    • SuperUser access
  • Manage
    • Security
      • Firewall
      • Key-based authentication for SSH
      • File access control lists
    • SELinux configuration
      • Modes
        • Enforcing
        • permissive
      • Security Context
        • Restore Default
      • Modify Booleans
      • Diagnose and address routine policy violations
      • List/identify SELinux file and process context
    • Basic networking
      • IPv4 and IPv6
      • Hostname resolution/DNS
      • Start automatically at boot
    • Restore default file contexts
  • Perform basic container management