Upload files to "/"
This commit is contained in:
174
README.md
Normal file
174
README.md
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
# RHEL 8.10 Offline Update Script
|
||||||
|
|
||||||
|
An interactive bash script for applying RHEL 8.10 updates from a local ISO file in air-gapped or disconnected environments.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This script guides administrators through the process of mounting an update ISO and applying patches to RHEL 8.10 systems that cannot reach Red Hat's CDN or Satellite servers.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- RHEL 8.10 system
|
||||||
|
- Root or sudo access
|
||||||
|
- Update ISO: `Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso`
|
||||||
|
- ~35 GB free disk space (if copying ISO locally)
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Download the script
|
||||||
|
chmod +x rhel8-iso-update.sh
|
||||||
|
|
||||||
|
# Run with sudo
|
||||||
|
sudo ./rhel8-iso-update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Interactive prompts** - Confirms each action before proceeding
|
||||||
|
- **External media detection** - Automatically finds the ISO on USB drives
|
||||||
|
- **Unmounted USB support** - Detects and offers to mount USB devices
|
||||||
|
- **Progress feedback** - Color-coded output for easy reading
|
||||||
|
- **Reboot detection** - Checks if a reboot is needed after updates
|
||||||
|
- **Cleanup options** - Offers to remove configs and unmount when finished
|
||||||
|
|
||||||
|
## What the Script Does
|
||||||
|
|
||||||
|
| Step | Action |
|
||||||
|
|------|--------|
|
||||||
|
| 1 | Locates the ISO file (local storage or external media) |
|
||||||
|
| 2 | Creates mount point at `/media/JanPatch` |
|
||||||
|
| 3 | Mounts the ISO |
|
||||||
|
| 4 | Creates repo file at `/etc/yum.repos.d/JanPatch.repo` |
|
||||||
|
| 5 | Refreshes DNF cache |
|
||||||
|
| 6 | Displays available updates |
|
||||||
|
| 7 | Applies updates |
|
||||||
|
| 8 | Checks if reboot is required |
|
||||||
|
| 9 | Cleanup (optional) |
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
### ISO Already Copied to Server
|
||||||
|
|
||||||
|
If the ISO is already at `/var/isos/Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./rhel8-iso-update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
The script will detect it and proceed.
|
||||||
|
|
||||||
|
### ISO on USB Drive
|
||||||
|
|
||||||
|
1. Plug in the USB drive containing the ISO
|
||||||
|
2. Run the script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./rhel8-iso-update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
3. The script will detect the USB and offer options:
|
||||||
|
- Copy ISO to local storage (recommended for faster updates)
|
||||||
|
- Use ISO directly from USB (no wait, but slower updates)
|
||||||
|
|
||||||
|
### Manual ISO Path
|
||||||
|
|
||||||
|
If your ISO is in a non-standard location, the script will prompt you to enter the path manually.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Default paths used by the script:
|
||||||
|
|
||||||
|
| Setting | Value |
|
||||||
|
|---------|-------|
|
||||||
|
| ISO filename | `Full_Latest_RHEL8_x86_64_patches_2026-01-13.iso` |
|
||||||
|
| Default ISO path | `/var/isos/` |
|
||||||
|
| Mount point | `/media/JanPatch` |
|
||||||
|
| Repo file | `/etc/yum.repos.d/JanPatch.repo` |
|
||||||
|
| Repo name | `dvd-rhel-patches` |
|
||||||
|
|
||||||
|
To change these defaults, edit the Configuration section at the top of the script.
|
||||||
|
|
||||||
|
## Repository Configuration
|
||||||
|
|
||||||
|
The script creates the following repo file:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[dvd-rhel-patches]
|
||||||
|
name=DVD for RHEL Patches
|
||||||
|
baseurl=file:///media/JanPatch
|
||||||
|
enabled=1
|
||||||
|
gpgcheck=0
|
||||||
|
```
|
||||||
|
|
||||||
|
GPG checking is disabled to avoid signature issues in disconnected environments.
|
||||||
|
|
||||||
|
## Cleanup
|
||||||
|
|
||||||
|
At the end of the process, the script offers to:
|
||||||
|
|
||||||
|
- Disable the `dvd-rhel-patches` repository
|
||||||
|
- Remove the repo file
|
||||||
|
- Unmount the ISO
|
||||||
|
- Unmount USB drives (if used)
|
||||||
|
- Delete the ISO file to free up space
|
||||||
|
|
||||||
|
All cleanup actions require confirmation.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Script won't run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Make sure it's executable
|
||||||
|
chmod +x rhel8-iso-update.sh
|
||||||
|
|
||||||
|
# Run with sudo
|
||||||
|
sudo ./rhel8-iso-update.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### ISO not detected on USB
|
||||||
|
|
||||||
|
- Ensure the USB drive is plugged in before running the script
|
||||||
|
- Try running `lsblk` to verify the system sees the drive
|
||||||
|
- The script searches up to 3 directories deep on external media
|
||||||
|
|
||||||
|
### "No repodata found" error
|
||||||
|
|
||||||
|
The ISO structure may differ from expected. Check the ISO contents:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo mount -o loop /path/to/iso /mnt/temp
|
||||||
|
ls -la /mnt/temp
|
||||||
|
find /mnt/temp -name "repodata" -type d
|
||||||
|
```
|
||||||
|
|
||||||
|
Update the `baseurl` in `/etc/yum.repos.d/JanPatch.repo` to point to the directory containing `repodata/`.
|
||||||
|
|
||||||
|
### Updates failing with dependency errors
|
||||||
|
|
||||||
|
Try disabling other repos and using only the ISO:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dnf update --disablerepo="*" --enablerepo="dvd-rhel-patches"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manual Process
|
||||||
|
|
||||||
|
If you prefer to run the steps manually, see the accompanying guide: [RHEL 8.10 Offline Update Guide](rhel8-iso-update-guide.md)
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
| File | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `rhel8-iso-update.sh` | Interactive update script |
|
||||||
|
| `rhel8-iso-update-guide.md` | Manual step-by-step guide |
|
||||||
|
| `README.md` | This file |
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
Cybersecurity Team
|
||||||
|
|
||||||
|
## Last Updated
|
||||||
|
|
||||||
|
January 2026
|
||||||
Reference in New Issue
Block a user