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=
- Kickstart – Automate installs
- 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
- Input-Output Redirection
- Documentation
- Locate, read and use system documentation
- Man
- Info
- /usr/share/doc
- Locate, read and use system documentation
- 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
- handling files
- 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)
- Overcommitting of physical resources
- 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
- CPU
- 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)
- Device Types
- 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.
- Pools are comprised of
- 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
- sudo yum install “Virtualization Client”
- 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
- Local
- Browse for image
- Set Memory and CPU(s)
- Set disk image size
- Set Name choose a network.
- Virtual Machine Manager
- KVM – Kernal-based Virtual Machine
- booting into different run levels
- Configure
- Local storage
- Physical volumes
- Create
- Delete/Remove
- Assign to volume groups
- Partitions
- Create
- Delete
- Physical volumes
- 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
- Local storage
- 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
- C2R
- 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
- permissions
- file systems and file system attributes, such as
- 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
- Software
- 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
- Modes
- Basic networking
- IPv4 and IPv6
- Hostname resolution/DNS
- Start automatically at boot
- Restore default file contexts
- Security
- Perform basic container management