Last active
March 14, 2023 16:59
-
-
Save hvindin/0a87ba17b5e5c2823e8ac0f146cf15cd to your computer and use it in GitHub Desktop.
leapp rhel 7 to rhel 8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It helps for reach final state of prerequisites for RHEL8 upgrade starting with Leapp.