Script adaptation for MSVSphere

main
Arkady L. Shane 9 months ago
parent 6716b617df
commit 8fcca12bca
Signed by untrusted user: tigro
GPG Key ID: 1EC08A25C9DB2503

@ -1,28 +1,30 @@
#!/bin/bash #!/bin/bash
# Description: EL to AlmaLinux migration script. # Description: EL to MSVSphere migration script.
# License: GPLv3. # License: GPLv3.
# Environment variables: # Environment variables:
# ALMA_RELEASE_URL - almalinux-release package download URL. # ALMA_RELEASE_URL - msvsphere-release package download URL.
# ALMA_PUBKEY_URL - RPM-GPG-KEY-AlmaLinux download URL. # ALMA_PUBKEY_URL - RPM-GPG-KEY-MSVSphere download URL.
set -euo pipefail set -euo pipefail
BASE_TMP_DIR='/root' BASE_TMP_DIR='/root'
OS_RELEASE_PATH='/etc/os-release' OS_RELEASE_PATH='/etc/os-release'
REDHAT_RELEASE_PATH='/etc/redhat-release' REDHAT_RELEASE_PATH='/etc/redhat-release'
STAGE_STATUSES_DIR='/var/run/almalinux-deploy-statuses' STAGE_STATUSES_DIR='/var/run/msvsphere-deploy-statuses'
ALT_ADM_DIR="/var/lib/alternatives" ALT_ADM_DIR="/var/lib/alternatives"
BAK_DIR="/tmp/alternatives_backup" BAK_DIR="/tmp/alternatives_backup"
ALT_DIR="/etc/alternatives" ALT_DIR="/etc/alternatives"
# AlmaLinux OS 8.5 # MSVSphere OS 8.5
MINIMAL_SUPPORTED_VERSION='8.4' MINIMAL_SUPPORTED_VERSION='8.4'
VERSION='0.1.13' VERSION='0.1.13'
DOWNGRADE='NO' DOWNGRADE='NO'
BRANDING_PKGS=("centos-backgrounds" "centos-logos" "centos-indexhtml" \ BRANDING_PKGS=("centos-backgrounds" "centos-logos" "centos-indexhtml" \
"centos-logos-ipa" "centos-logos-httpd" \ "centos-logos-ipa" "centos-logos-httpd" \
"almalinux-backgrounds" "almalinux-logos" "almalinux-indexhtml" \
"almalinux-logos-ipa" "almalinux-logos-httpd" \
"oracle-backgrounds" "oracle-logos" "oracle-indexhtml" \ "oracle-backgrounds" "oracle-logos" "oracle-indexhtml" \
"oracle-logos-ipa" "oracle-logos-httpd" \ "oracle-logos-ipa" "oracle-logos-httpd" \
"oracle-epel-release-el8" "oracle-epel-release-el9" \ "oracle-epel-release-el8" "oracle-epel-release-el9" \
@ -39,6 +41,8 @@ REMOVE_PKGS=("centos-linux-release" "centos-gpg-keys" "centos-linux-repos" \
"libreport-plugin-rhtsupport" "libreport-rhel" "insights-client" \ "libreport-plugin-rhtsupport" "libreport-rhel" "insights-client" \
"libreport-rhel-anaconda-bugzilla" "libreport-rhel-bugzilla" \ "libreport-rhel-anaconda-bugzilla" "libreport-rhel-bugzilla" \
"linux-firmware-core" \ "linux-firmware-core" \
"almalinux-release" "almalinux-gpg-keys" "almalinux-repos" \
"almalinux-obsolete-packages" "libblockdev-btrfs" \
"oraclelinux-release" "oraclelinux-release-el8" \ "oraclelinux-release" "oraclelinux-release-el8" \
"oraclelinux-release-el9" "python3-gobject-base-noarch" \ "oraclelinux-release-el9" "python3-gobject-base-noarch" \
"redhat-release" "redhat-release-eula" \ "redhat-release" "redhat-release-eula" \
@ -53,8 +57,8 @@ module_list_installed=""
is_container=0 is_container=0
setup_log_files() { setup_log_files() {
exec > >(tee /var/log/almalinux-deploy.log) exec > >(tee /var/log/msvsphere-deploy.log)
exec 5> /var/log/almalinux-deploy.debug.log exec 5> /var/log/msvsphere-deploy.debug.log
BASH_XTRACEFD=5 BASH_XTRACEFD=5
} }
@ -95,7 +99,7 @@ get_status_of_stage() {
is_migration_completed() { is_migration_completed() {
if get_status_of_stage "completed"; then if get_status_of_stage "completed"; then
printf '\n\033[0;32mMigration to AlmaLinux was already completed\033[0m\n' printf '\n\033[0;32mMigration to MSVSphere was already completed\033[0m\n'
exit 0 exit 0
fi fi
} }
@ -126,8 +130,8 @@ report_step_error() {
# Prints program usage information. # Prints program usage information.
show_usage() { show_usage() {
echo -e 'Migrates an EL system to AlmaLinux\n' echo -e 'Migrates an EL system to MSVSphere\n'
echo -e 'Usage: almalinux-deploy.sh [OPTION]...\n' echo -e 'Usage: msvsphere-deploy.sh [OPTION]...\n'
echo ' -h, --help show this message and exit' echo ' -h, --help show this message and exit'
echo ' -f, --full perform yum upgrade to 8.5 if necessary' echo ' -f, --full perform yum upgrade to 8.5 if necessary'
echo ' -d, --downgrade option to allow downgrade from CentOS Stream' echo ' -d, --downgrade option to allow downgrade from CentOS Stream'
@ -222,7 +226,7 @@ get_panel_info() {
echo "${panel_type} ${panel_version}" echo "${panel_type} ${panel_version}"
} }
# Terminates the program if a platform is not supported by AlmaLinux. # Terminates the program if a platform is not supported by MSVSphere.
# #
# $1 - Operational system id (ID). # $1 - Operational system id (ID).
# $2 - Operational system version (e.g. 8 or 8.3). # $2 - Operational system version (e.g. 8 or 8.3).
@ -246,7 +250,7 @@ assert_supported_system() {
report_step_error "Check EL${os_version} is supported" report_step_error "Check EL${os_version} is supported"
exit 1 exit 1
fi fi
os_types=("centos" "almalinux" "ol" "rhel" "rocky" "virtuozzo") os_types=("centos" "almalinux" "msvsphere" "ol" "rhel" "rocky" "virtuozzo")
if [[ ! " ${os_types[*]} " =~ ${os_type} ]]; then if [[ ! " ${os_types[*]} " =~ ${os_type} ]]; then
report_step_error "Check ${os_type} operating system is supported" report_step_error "Check ${os_type} operating system is supported"
exit 1 exit 1
@ -256,7 +260,7 @@ assert_supported_system() {
return 0 return 0
} }
# Terminates the program if a control panel is not supported by AlmaLinux. # Terminates the program if a control panel is not supported by MSVSphere.
# #
# $1 - Control panel type. # $1 - Control panel type.
# $2 - Control panel version. # $2 - Control panel version.
@ -310,56 +314,56 @@ assert_supported_filesystem() {
save_status_of_stage "assert_supported_filesystem" save_status_of_stage "assert_supported_filesystem"
} }
# Returns a latest almalinux-release RPM package download URL. # Returns a latest msvsphere-release RPM package download URL.
# #
# $1 - AlmaLinux major version (e.g. 8). # $1 - MSVSphere major version (e.g. 8).
# $2 - System architecture (e.g. x86_64). # $2 - System architecture (e.g. x86_64).
# #
# Prints almalinux-release RPM package download URL. # Prints msvsphere-release RPM package download URL.
get_release_file_url() { get_release_file_url() {
local -r os_version="${1:0:1}" local -r os_version="${1:0:1}"
local -r arch="${2}" local -r arch="${2}"
echo "${ALMA_RELEASE_URL:-https://repo.almalinux.org/almalinux/almalinux-release-latest-${os_version}.${arch}.rpm}" echo "${ALMA_RELEASE_URL:-https://rsync.inferitos.ru/msvsphere/sphere-release-server-latest-${os_version}.${arch}.rpm https://rsync.inferitos.ru/msvsphere/sphere-release-identity-server-latest-${os_version}.${arch}.rpm https://rsync.inferitos.ru/msvsphere/sphere-release-common-latest-${os_version}.${arch}.rpm}"
} }
# Returns a latest almalinux-repos RPM package download URL. # Returns a latest msvsphere-repos RPM package download URL.
# #
# $1 - AlmaLinux major version (e.g. 9). # $1 - MSVSphere major version (e.g. 9).
# $2 - System architecture (e.g. x86_64). # $2 - System architecture (e.g. x86_64).
# #
# Prints almalinux-release RPM package download URL. # Prints msvsphere-release RPM package download URL.
get_repos_file_url() { get_repos_file_url() {
local -r os_version="${1:0:1}" local -r os_version="${1:0:1}"
local -r arch="${2}" local -r arch="${2}"
echo "${ALMA_REPOS_URL:-https://repo.almalinux.org/almalinux/almalinux-repos-latest-${os_version}.${arch}.rpm}" echo "${ALMA_REPOS_URL:-https://rsync.inferitos.ru/msvsphere/sphere-repos-latest-${os_version}.${arch}.rpm}"
} }
# Returns a latest almalinux-gpg-keys RPM package download URL. # Returns a latest msvsphere-gpg-keys RPM package download URL.
# #
# $1 - AlmaLinux major version (e.g. 9). # $1 - MSVSphere major version (e.g. 9).
# $2 - System architecture (e.g. x86_64). # $2 - System architecture (e.g. x86_64).
# #
# Prints almalinux-gpg-keys RPM package download URL. # Prints msvsphere-gpg-keys RPM package download URL.
get_gpg_keys_file_url() { get_gpg_keys_file_url() {
local -r os_version="${1:0:1}" local -r os_version="${1:0:1}"
local -r arch="${2}" local -r arch="${2}"
echo "${ALMA_REPOS_URL:-https://repo.almalinux.org/almalinux/almalinux-gpg-keys-latest-${os_version}.${arch}.rpm}" echo "${ALMA_REPOS_URL:-https://rsync.inferitos.ru/msvsphere/sphere-gpg-keys-latest-${os_version}.${arch}.rpm}"
} }
# Downloads and installs the AlmaLinux public PGP key. # Downloads and installs the MSVSphere public PGP key.
# #
# $1 - Temporary directory path. # $1 - Temporary directory path.
# $2 - AlmaLinux major version (e.g. 8). # $2 - MSVSphere major version (e.g. 8).
install_rpm_pubkey() { install_rpm_pubkey() {
if get_status_of_stage "install_rpm_pubkey"; then if get_status_of_stage "install_rpm_pubkey"; then
return 0 return 0
fi fi
local -r tmp_dir="${1}" local -r tmp_dir="${1}"
local -r os_version="${2:0:1}" local -r os_version="${2:0:1}"
local -r ALMA_PUBKEY_URL="https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux-${os_version}" local -r ALMA_PUBKEY_URL="https://rsync.inferitos.ru/msvsphere/RPM-GPG-KEY-MSVSphere-${os_version}"
local -r pubkey_url="${ALMA_PUBKEY_URL:-https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux}" local -r pubkey_url="${ALMA_PUBKEY_URL:-https://rsync.inferitos.ru/msvsphere/RPM-GPG-KEY-MSVSphere-8}"
local -r pubkey_path="${tmp_dir}/RPM-GPG-KEY-AlmaLinux" local -r pubkey_path="${tmp_dir}/RPM-GPG-KEY-MSVSphere"
local -r step='Download RPM-GPG-KEY-AlmaLinux' local -r step='Download RPM-GPG-KEY-MSVSphere'
local output local output
if ! output=$(curl -f -s -S -o "${pubkey_path}" "${pubkey_url}" 2>&1); then if ! output=$(curl -f -s -S -o "${pubkey_path}" "${pubkey_url}" 2>&1); then
report_step_error "${step}" "${output}" report_step_error "${step}" "${output}"
@ -368,60 +372,60 @@ install_rpm_pubkey() {
report_step_done "${step}" report_step_done "${step}"
fi fi
rpm --import "${pubkey_path}" rpm --import "${pubkey_path}"
report_step_done 'Import RPM-GPG-KEY-AlmaLinux to RPM DB' report_step_done 'Import RPM-GPG-KEY-MSVSphere to RPM DB'
rm -f "${pubkey_path}" rm -f "${pubkey_path}"
save_status_of_stage "install_rpm_pubkey" save_status_of_stage "install_rpm_pubkey"
} }
# Downloads almalinux-release package. # Downloads msvsphere-release package.
# #
# $1 - Temporary directory path. # $1 - Temporary directory path.
# $2 - almalinux-release package download URL. # $2 - msvsphere-release package download URL.
# #
# Prints downloaded file path. # Prints downloaded file path.
download_release_files() { download_release_files() {
local -r tmp_dir="${1}" local -r tmp_dir="${1}"
local -r release_url="${2}" local -r release_url="${2}"
local -r release_path="${tmp_dir}/almalinux-release-latest.rpm" local -r release_path="${tmp_dir}/sphere-release-server-latest.rpm ${tmp_dir}/sphere-release-identity-server-latest.rpm ${tmp_dir}/sphere-release-common-latest.rpm"
local output local output
if ! output=$(curl -f -s -S -o "${release_path}" "${release_url}" 2>&1); then if ! output=$(for url in ${release_url}; do curl -f -s -S -o "${tmp_dir}/$(echo $url | awk -F/ '{ print $NF }' | sed 's@-[0-9].*$@.rpm@')" "${url}"; done 2>&1); then
report_step_error 'Download almalinux packages - release' "${output}" report_step_error 'Download msvsphere packages - release' "${output}"
exit 1 exit 1
fi fi
echo "${release_path}" echo "${release_path}"
} }
# Downloads almalinux-repos package. # Downloads msvsphere-repos package.
# #
# $1 - Temporary directory path. # $1 - Temporary directory path.
# $2 - almalinux-repos package download URL. # $2 - msvsphere-repos package download URL.
# #
# Prints downloaded file path. # Prints downloaded file path.
download_repos_files() { download_repos_files() {
local -r tmp_dir="${1}" local -r tmp_dir="${1}"
local -r repos_url="${2}" local -r repos_url="${2}"
local -r repos_path="${tmp_dir}/almalinux-repos.rpm" local -r repos_path="${tmp_dir}/msvsphere-repos.rpm"
local output local output
if ! output=$(curl -f -s -S -o "${repos_path}" "${repos_url}" 2>&1); then if ! output=$(curl -f -s -S -o "${repos_path}" "${repos_url}" 2>&1); then
report_step_error 'Download almalinux packages - repos' "${output}" report_step_error 'Download msvsphere packages - repos' "${output}"
exit 1 exit 1
fi fi
echo "${repos_path}" echo "${repos_path}"
} }
# Downloads almalinux-gpg-keys package. # Downloads msvsphere-gpg-keys package.
# #
# $1 - Temporary directory path. # $1 - Temporary directory path.
# $2 - almalinux-gpg-keys package download URL. # $2 - msvsphere-gpg-keys package download URL.
# #
# Prints downloaded file path. # Prints downloaded file path.
download_gpg_keys_files() { download_gpg_keys_files() {
local -r tmp_dir="${1}" local -r tmp_dir="${1}"
local -r gpg_keys_url="${2}" local -r gpg_keys_url="${2}"
local -r gpg_keys_path="${tmp_dir}/almalinux-gpg-keys.rpm" local -r gpg_keys_path="${tmp_dir}/msvsphere-gpg-keys.rpm"
local output local output
if ! output=$(curl -f -s -S -o "${gpg_keys_path}" "${gpg_keys_url}" 2>&1); then if ! output=$(curl -f -s -S -o "${gpg_keys_path}" "${gpg_keys_url}" 2>&1); then
report_step_error 'Download almalinux packages - gpg-keys' "${output}" report_step_error 'Download msvsphere packages - gpg-keys' "${output}"
exit 1 exit 1
fi fi
echo "${gpg_keys_path}" echo "${gpg_keys_path}"
@ -433,12 +437,13 @@ download_gpg_keys_files() {
assert_valid_package() { assert_valid_package() {
local -r pkg_path="${1}" local -r pkg_path="${1}"
local output local output
if ! output=$(rpm -K "${pkg_path}" 2>&1); then rpm -K $pkg_path 2>&1
report_step_error "Verify $(basename "${pkg_path}") package" \ if ! output=$(rpm -K ${pkg_path} 2>&1); then
report_step_error "Verify ${pkg_path} package" \
"${output}" "${output}"
exit 1 exit 1
fi fi
report_step_done 'Verify almalinux-release package' report_step_done 'Verify msvsphere-release package'
} }
# #
@ -492,10 +497,10 @@ dnf_upgrade() {
report_step_done 'DNF upgrade' report_step_done 'DNF upgrade'
} }
# Terminates the program if OS version doesn't match AlmaLinux version. # Terminates the program if OS version doesn't match MSVSphere version.
# #
# $1 - OS version. # $1 - OS version.
# $2 - almalinux-release package file path. # $2 - msvsphere-release package file path.
assert_compatible_os_version() { assert_compatible_os_version() {
if get_status_of_stage "assert_compatible_os_version"; then if get_status_of_stage "assert_compatible_os_version"; then
return 0 return 0
@ -503,7 +508,7 @@ assert_compatible_os_version() {
local -r os_version="${1}" local -r os_version="${1}"
local -r release_path="${2}" local -r release_path="${2}"
local alma_version local alma_version
alma_version=$(rpm -qp --queryformat '%{version}' "${release_path}") alma_version=$(rpm -qp --queryformat '%{version}' ${release_path})
if [[ "$(get_os_release_var 'NAME')" != 'CentOS Stream' ]]; then if [[ "$(get_os_release_var 'NAME')" != 'CentOS Stream' ]]; then
if [[ "${os_version:0:1}" -lt "${MINIMAL_SUPPORTED_VERSION:0:1}" ]] && [[ "${os_version:2:3}" -lt "${MINIMAL_SUPPORTED_VERSION:2:3}" ]]; then if [[ "${os_version:0:1}" -lt "${MINIMAL_SUPPORTED_VERSION:0:1}" ]] && [[ "${os_version:2:3}" -lt "${MINIMAL_SUPPORTED_VERSION:2:3}" ]]; then
@ -581,42 +586,42 @@ remove_not_needed_redhat_dirs() {
} }
# Install package almalinux-release # Install package msvsphere-release
install_almalinux_release_package() { install_msvsphere_release_package() {
if get_status_of_stage "install_almalinux_release_package"; then if get_status_of_stage "install_msvsphere_release_package"; then
return 0 return 0
fi fi
local -r release_path="${1}" local -r release_path="${1}"
rpm -Uvh --nodeps "${release_path}" rpm -Uvh --nodeps ${release_path}
report_step_done 'Install almalinux-release package' report_step_done 'Install msvsphere-release package'
save_status_of_stage "install_almalinux_release_package" save_status_of_stage "install_msvsphere_release_package"
} }
# Install package almalinux-repos # Install package msvsphere-repos
install_almalinux_repos_package() { install_msvsphere_repos_package() {
if get_status_of_stage "install_almalinux_repos_package"; then if get_status_of_stage "install_msvsphere_repos_package"; then
return 0 return 0
fi fi
local -r repos_path="${1}" local -r repos_path="${1}"
rpm -Uvh --nodeps "${repos_path}" rpm -Uvh --nodeps "${repos_path}"
report_step_done 'Install almalinux-repos package' report_step_done 'Install msvsphere-repos package'
save_status_of_stage "install_almalinux_repos_package" save_status_of_stage "install_msvsphere_repos_package"
} }
# Install package almalinux-gpg-keys # Install package msvsphere-gpg-keys
# #
# $1 - full path (including package filename) to the almalinux-gpg-keys package # $1 - full path (including package filename) to the msvsphere-gpg-keys package
install_almalinux_gpg_keys_package() { install_msvsphere_gpg_keys_package() {
if get_status_of_stage "install_almalinux_gpg_keys_package"; then if get_status_of_stage "install_msvsphere_gpg_keys_package"; then
return 0 return 0
fi fi
local -r gpg_keys_path="${1}" local -r gpg_keys_path="${1}"
rpm -Uvh --nodeps "${gpg_keys_path}" rpm -Uvh --nodeps "${gpg_keys_path}"
report_step_done 'Install almalinux-gpg-keys package' report_step_done 'Install msvsphere-gpg-keys package'
save_status_of_stage "install_almalinux_gpg_keys_package" save_status_of_stage "install_msvsphere_gpg_keys_package"
} }
# Remove brand packages and install the same AlmaLinux packages # Remove brand packages and install the same MSVSphere packages
replace_brand_packages() { replace_brand_packages() {
if get_status_of_stage "replace_brand_packages"; then if get_status_of_stage "replace_brand_packages"; then
return 0 return 0
@ -636,7 +641,7 @@ replace_brand_packages() {
;; ;;
*) *)
# shellcheck disable=SC2001 # shellcheck disable=SC2001
alma_pkg="$(echo "${pkg_name}" | sed 's#centos\|oracle\|redhat\|rocky\|vzlinux#almalinux#')" alma_pkg="$(echo "${pkg_name}" | sed 's#centos\|oracle\|redhat\|rocky\|almalinux\|vzlinux#sphere#')"
;; ;;
esac esac
alma_pkgs+=("${alma_pkg}") alma_pkgs+=("${alma_pkg}")
@ -658,33 +663,25 @@ replace_brand_packages() {
} }
# Converts a CentOS like system to AlmaLinux # Converts a CentOS like system to MSVSphere
# #
# $1 - almalinux-release RPM package path. # $1 - msvsphere-release RPM package path.
# $2 - almalinux-repos RPM package path. # $2 - msvsphere-repos RPM package path.
# $3 - almalinux-gpg-keys RPM package path # $3 - msvsphere-gpg-keys RPM package path
migrate_from_centos() { migrate_from_centos() {
if get_status_of_stage "migrate_from_centos"; then if get_status_of_stage "migrate_from_centos"; then
return 0 return 0
fi fi
local -r release_path="${1}" local -r release_path="${1}"
case "${os_version}" in local -r repos_path="${2}"
9*) local -r gpg_keys_path="${3}"
local -r repos_path="${2}" # replace OS packages with msvsphere-release
local -r gpg_keys_path="${3}"
;;
esac
# replace OS packages with almalinux-release
# and OS centos-specific packages # and OS centos-specific packages
remove_os_specific_packages_before_migration remove_os_specific_packages_before_migration
remove_not_needed_redhat_dirs remove_not_needed_redhat_dirs
install_almalinux_release_package "${release_path}" install_msvsphere_release_package "${release_path}"
case "${os_version}" in install_msvsphere_repos_package "${repos_path}"
9*) install_msvsphere_gpg_keys_package "${gpg_keys_path}"
install_almalinux_repos_package "${repos_path}"
install_almalinux_gpg_keys_package "${gpg_keys_path}"
;;
esac
replace_brand_packages replace_brand_packages
save_status_of_stage "migrate_from_centos" save_status_of_stage "migrate_from_centos"
} }
@ -776,9 +773,9 @@ install_kernel() {
fi fi
if ! output=$(rpm -q kernel 2>&1); then if ! output=$(rpm -q kernel 2>&1); then
if output=$(dnf -y install kernel 2>&1); then if output=$(dnf -y install kernel 2>&1); then
report_step_done "Install AlmaLinux kernel" report_step_done "Install MSVSphere kernel"
else else
report_step_error "Install AlmaLinux kernel" report_step_error "Install MSVSphere kernel"
fi fi
fi fi
save_status_of_stage "install_kernel" save_status_of_stage "install_kernel"
@ -1010,21 +1007,21 @@ add_efi_boot_record() {
fi fi
if [[ ${arch} == "x86_64" && $device == *"/dev/md"* ]]; then if [[ ${arch} == "x86_64" && $device == *"/dev/md"* ]]; then
efibootmgr -c -L "AlmaLinux" -l "\EFI\almalinux\shimx64.efi" -d "${disk_name1}" -p "${disk_num1}" efibootmgr -c -L "MSVSphere" -l "\EFI\msvsphere\shimx64.efi" -d "${disk_name1}" -p "${disk_num1}"
efibootmgr -c -L "AlmaLinux" -l "\EFI\almalinux\shimx64.efi" -d "${disk_name2}" -p "${disk_num2}" efibootmgr -c -L "MSVSphere" -l "\EFI\msvsphere\shimx64.efi" -d "${disk_name2}" -p "${disk_num2}"
elif [[ ${arch} == "aarch64" && $device == *"/dev/md"* ]]; then elif [[ ${arch} == "aarch64" && $device == *"/dev/md"* ]]; then
efibootmgr -c -L "AlmaLinux" -l "\EFI\almalinux\shimaa64.efi" -d "${disk_name1}" -p "${disk_num1}" efibootmgr -c -L "MSVSphere" -l "\EFI\msvsphere\shimaa64.efi" -d "${disk_name1}" -p "${disk_num1}"
efibootmgr -c -L "AlmaLinux" -l "\EFI\almalinux\shimaa64.efi" -d "${disk_name2}" -p "${disk_num2}" efibootmgr -c -L "MSVSphere" -l "\EFI\msvsphere\shimaa64.efi" -d "${disk_name2}" -p "${disk_num2}"
elif [[ ${arch} == "x86_64" ]]; then elif [[ ${arch} == "x86_64" ]]; then
efibootmgr -c -L "AlmaLinux" -l "\EFI\almalinux\shimx64.efi" -d "${disk_name}" -p "${disk_num}" efibootmgr -c -L "MSVSphere" -l "\EFI\msvsphere\shimx64.efi" -d "${disk_name}" -p "${disk_num}"
elif [[ ${arch} == "aarch64" ]]; then elif [[ ${arch} == "aarch64" ]]; then
efibootmgr -c -L "AlmaLinux" -l "\EFI\almalinux\shimaa64.efi" -d "${disk_name}" -p "${disk_num}" efibootmgr -c -L "MSVSphere" -l "\EFI\msvsphere\shimaa64.efi" -d "${disk_name}" -p "${disk_num}"
fi fi
report_step_done "The new EFI boot record for AlmaLinux is added" report_step_done "The new EFI boot record for MSVSphere is added"
save_status_of_stage "add_efi_boot_record" save_status_of_stage "add_efi_boot_record"
} }
@ -1036,16 +1033,16 @@ reinstall_secure_boot_packages() {
if [ "$(which grubby)" ] ; then #if this happens on a system with GRUB and related tools, rather than on RPi if [ "$(which grubby)" ] ; then #if this happens on a system with GRUB and related tools, rather than on RPi
local kernel_package local kernel_package
for pkg in $(rpm -qa | grep -E 'shim|fwupd|grub2'); do for pkg in $(rpm -qa | grep -E 'shim|fwupd|grub2'); do
if [[ "AlmaLinux" != "$(rpm -q --queryformat '%{vendor}' "$pkg")" ]]; then if [[ "MSVSphere" != "$(rpm -q --queryformat '%{vendor}' "$pkg")" ]]; then
yum reinstall "${pkg}" -y yum reinstall "${pkg}" -y
fi fi
done done
kernel_package="$(rpm -qf "$(grubby --default-kernel)")" kernel_package="$(rpm -qf "$(grubby --default-kernel)")"
if [[ "AlmaLinux" != "$(rpm -q --queryformat '%{vendor}' "${kernel_package}")" ]]; then if [[ "MSVSphere" != "$(rpm -q --queryformat '%{vendor}' "${kernel_package}")" ]]; then
yum reinstall "${kernel_package}" -y yum reinstall "${kernel_package}" -y
fi fi
fi fi
report_step_done "All Secure Boot related packages which were not released by AlmaLinux are reinstalled" report_step_done "All Secure Boot related packages which were not released by MSVSphere are reinstalled"
save_status_of_stage "reinstall_secure_boot_packages" save_status_of_stage "reinstall_secure_boot_packages"
} }
@ -1099,7 +1096,7 @@ main() {
install_rpm_pubkey "${tmp_dir}" "${os_version}" install_rpm_pubkey "${tmp_dir}" "${os_version}"
release_path=$(download_release_files "${tmp_dir}" "${release_url}") release_path=$(download_release_files "${tmp_dir}" "${release_url}")
report_step_done 'Download almalinux-release package' report_step_done 'Download msvsphere-release package'
if mount | grep -q fuse.lxcfs || if mount | grep -q fuse.lxcfs ||
env | grep -q 'container=lxc' || env | grep -q 'container=lxc' ||
awk '{print $1}' /proc/vz/veinfo 2>/dev/null || awk '{print $1}' /proc/vz/veinfo 2>/dev/null ||
@ -1111,7 +1108,7 @@ main() {
assert_compatible_os_version "${os_version}" "${release_path}" assert_compatible_os_version "${os_version}" "${release_path}"
case "${os_type}" in case "${os_type}" in
almalinux|centos|ol|rhel|rocky|virtuozzo) almalinux|centos|msvsphere|ol|rhel|rocky|virtuozzo)
backup_issue backup_issue
if [[ "${os_type}" == "rhel" ]]; then if [[ "${os_type}" == "rhel" ]]; then
@ -1120,7 +1117,11 @@ main() {
case "${os_version}" in case "${os_version}" in
8*) 8*)
migrate_from_centos "${release_path}" repos_url=$(get_repos_file_url "${os_version}" "${arch}")
repos_path=$(download_repos_files "${tmp_dir}" "${repos_url}")
gpg_keys_url=$(get_gpg_keys_file_url "${os_version}" "${arch}")
gpg_keys_path=$(download_gpg_keys_files "${tmp_dir}" "${gpg_keys_url}")
migrate_from_centos "${release_path}" "${repos_path}" "${gpg_keys_path}"
;; ;;
9*) 9*)
repos_url=$(get_repos_file_url "${os_version}" "${arch}") repos_url=$(get_repos_file_url "${os_version}" "${arch}")
@ -1152,7 +1153,7 @@ main() {
fi fi
check_custom_kernel check_custom_kernel
save_status_of_stage "completed" save_status_of_stage "completed"
printf '\n\033[0;32mMigration to AlmaLinux is completed\033[0m\n' printf '\n\033[0;32mMigration to MSVSphere is completed\033[0m\n'
} }
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then

Loading…
Cancel
Save