Skip to content

Instantly share code, notes, and snippets.

@hvindin
Last active March 14, 2023 16:59
Show Gist options
  • Save hvindin/0a87ba17b5e5c2823e8ac0f146cf15cd to your computer and use it in GitHub Desktop.
Save hvindin/0a87ba17b5e5c2823e8ac0f146cf15cd to your computer and use it in GitHub Desktop.
leapp rhel 7 to rhel 8
#!/bin/bash
if ! command -v subscription-manager > /dev/null; then echo "Cannot find subscription-manager"; exit 1; fi
if ! sudo subscription-manager status | grep -q 'Current'; then echo "Current subscription is not current!"; exit 1; fi
if grep -qvF 7.6 <(paste -s </etc/os-release); then if sudo subscription-manager release | grep -Eqv 'Release: 7(\.6|Server)'; then echo "Subscription is not to 7.6 or 7Server. Updating."; sudo subscription-manager release --set=7Server; fi; fi
sudo subscription-manager repos --disable="*" --enable=rhel-7-server-rpms --enable=rhel-7-server-supplementary-rpms --enable=rhel-7-server-extras-rpms
for repo in $(sudo repoquery --all --qf "%-20{ui_from_repo}" | sed -e 's#^@##g' | sort -u); do
if grep -Fqv "${repo}" <(paste -s </etc/yum.repos.d/redhat.repo); then
nonrhelrepos+=("${repo}")
fi
done
if [ "${#nonrhelrepos}" -gt 0 ]; then
echo "Found non-redhat repositories installed. Checking for installed packages from those repos."
for repo in "${nonrhelrepos[@]}"; do
for package in $(sudo repoquery --all --installed --qf "%-20{ui_from_repo} %-30{name}" | grep -E "^@${repo}" | awk '{print$2}'); do
repopackages+=("${package}")
done
if [ -n "${repopackages[*]}" ]; then
echo "From ${repo}:"
printf '\t%s\n' "${repopackages[@]}"
for package in "${repopackages[@]}"; do packages+=("${package}"); done
unset repopackages
fi
done
fi
if [ "${#packages}" -gt 0 ]; then
if [ "${1}" != "-f" ]; then
read -p "Uninstall all non-redhat packages to ensure a smooth upgrade? [N/y]" -N 1 -r forceuninstall
fi
if [ "${1}" = "-f" ] || [ "${forceuninstall}" = y ] || [ "${forceuninstall}" = Y ]; then
sudo yum remove "${packages[*]}" -y
fi
fi
echo "Running distro-sync to make sure we're at least a little bit up to date"
sudo yum distro-sync -y
echo "Installing leapp"
sudo yum install leapp -y
echo "Downloading rhel8 upgrade files"
curl -SsL https://access.redhat.com/sites/default/files/attachments/leapp-data3.tar.gz | sudo tar xzC /etc/leapp/files
echo "Running leapp upgrade"
sudo leapp upgrade
@dil-silles
Copy link

It helps for reach final state of prerequisites for RHEL8 upgrade starting with Leapp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment