File: //var/tmp0/brainy/scripts/migrate_script.sh
#!/bin/bash
TMPFILE="/root/script_migrate_flag"
STAGE_FILE="/root/script_migrate_stage"
# Чтение стадии из файла, если он существует
if [ -f "$STAGE_FILE" ]; then
STAGE=$(cat "$STAGE_FILE")
else
STAGE=0
fi
case $STAGE in
0)
echo -e "\033[1;32mStep1.\033[0m"
GLOBALS_FILE="/etc/brainy/globals.php"
CURRENT_VERSION=$(grep "\$GLOBALS\['CORE_VERSION'\]" "$GLOBALS_FILE" | cut -d'"' -f2)
TARGET_VERSION="1.0966"
if [ "$(printf '%s\n' "$TARGET_VERSION" "$CURRENT_VERSION" | sort -V | head -n1)" != "$TARGET_VERSION" ]; then
echo -e "\033[1;31mThe panel version is less than $TARGET_VERSION, update the panel to the latest version.\033[0m"
exit 1
fi
sed -i 's/mirrorlist.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo
sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo
sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/*.repo
sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo
yum clean all
yum upgrade -y
yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
yum install -y leapp-upgrade leapp-data-almalinux
leapp preupgrade
yum reinstall -y kernel kernel-devel kernel-headers
sed -i 's/^SELINUX=disabled/SELINUX=permissive/' /etc/selinux/config
echo -e 'Step1. Please \033[1;31mreboot\033[0m server'
echo -e 'After rebooting, run the command "\033[1;33mbash migrate_script.sh\033[0m"'
echo '1' > $STAGE_FILE
;;
1)
echo -e "\033[1;32mStep2.\033[0m"
leapp preupgrade
rmmod pata_acpi
rmmod floppy
leapp answer --section remove_pam_pkcs11_module_check.confirm=True
#echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
#leapp upgrade
yum remove -y openssl11-libs
yum remove -y sysvinit-tools
yum remove -y httpd24-filesystem
yum remove -y httpd24-tools
rpm -e --nodeps python-six
yum install -y python-six --disablerepo="*" --enablerepo="base"
leapp preupgrade
leapp upgrade
echo -e 'Step2. Please \033[1;31mreboot\033[0m server'
echo 'and View vnc upgrade server'
echo -e 'After rebooting, run the command "\033[1;33mbash migrate_script.sh\033[0m"'
echo '2' > $STAGE_FILE
;;
2)
echo -e "\033[1;32mStep3.\033[0m"
curl -o /etc/yum.repos.d/elevate-ng.repo https://repo.almalinux.org/elevate/testing/elevate-ng-el$(rpm -E %rhel).repo
sed -i 's/^exclude=/#exclude=/g' /etc/dnf/dnf.conf
sed -i 's/^exclude=/#exclude=/g' /etc/yum.conf
yum clean all
sed -i 's/^SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config
rm -rf /etc/yum.repos.d/kernel_v3.repo
rm -rf /etc/yum.repos.d/ELevate.repo
rm -rf /etc/yum.repos.d/brainy.repo
yum clean all
yum remove -y python2-leapp python3-leapp leapp
yum remove -y leapp-data-almalinux
yum remove -y leapp-upgrade
yum install -y leapp-upgrade leapp-data-almalinux
#reboot
pip2 install --upgrade six
curl https://repo.almalinux.org/elevate/testing/elevate-testing.repo -o /etc/yum.repos.d/elevate-testing.repo
rpm --import https://repo.almalinux.org/elevate/RPM-GPG-KEY-ELevate
#yum install -y leapp-upgrade leapp-data-almalinux
#yum install leapp leapp-repository python3-dnf
#yum install python-setuptools python-requests python-six
yum install -y firewalld
sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
rm -rf /etc/sysconfig/network-scripts/ifcfg-eth0
USERNAME="user_update_brainycp"
ROOT_HASH=$(grep '^root:' /etc/shadow | cut -d: -f2)
useradd -m -s /bin/bash $USERNAME
usermod -p "$ROOT_HASH" $USERNAME
usermod -aG wheel $USERNAME
if id -nG "$USERNAME" | grep -qw "wheel"; then
sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart sshd
leapp preupgrade
leapp upgrade
else
echo "Error adding user $USERNAME to sudo group."
echo 'Execute commands'
echo 'adduser user_update_brainycp'
echo 'passwd user_update_brainycp'
echo 'usermod -aG wheel user_update_brainycp'
echo "sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config"
echo "systemctl restart sshd"
echo ''
echo 'Log in as the created user and execute the commands:'
echo 'leapp preupgrade'
echo 'leapp upgrade'
echo ''
echo -e 'Step3. Please \033[1;31mreboot\033[0m server'
echo 'and View vnc upgrade server'
echo -e 'After rebooting the server, \033[1;33mlog in as user user_update_brainycp root password\033[0m, and run the command "\033[1;33mbash migrate_script.sh\033[0m"'
exit 1
fi
#echo 'Execute commands'
#echo 'adduser adminuser'
#echo 'passwd adminuser'
#echo 'usermod -aG wheel adminuser'
#echo "sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config"
#echo "systemctl restart sshd"
#echo ''
#echo 'Log in as the created user and execute the commands:'
#echo 'leapp preupgrade'
#echo 'leapp upgrade'
echo ''
echo -e 'Step3. Please \033[1;31mreboot\033[0m server'
echo 'and View vnc upgrade server'
echo -e 'After rebooting the server, \033[1;33mlog in as user user_update_brainycp root password\033[0m, and run the command sudo -i and cd /root "\033[1;33mbash migrate_script.sh\033[0m"'
# adduser adminuser
# passwd adminuser
# usermod -aG wheel adminuser
#sed -i 's/^PermitRootLogin.*/#PermitRootLogin yes/' /etc/ssh/sshd_config
#systemctl restart sshd
#Заходим из под созданного пользователя и через sudo -i даем привелегии рут
#leapp preupgrade
#если нет критических ошибок запускаем команду ниже
#leapp upgrade
echo '3' > $STAGE_FILE
;;
3)
echo -e "\033[1;32mStep4.\033[0m"
sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart sshd
rm -rf /etc/yum.repos.d/elevate*
rm -rf /etc/yum.repos.d/CentOS*
sed -i '/\[appstream\]/c\[AppStream\]' /etc/yum.repos.d/almalinux-appstream.repo &>/dev/null
sed -i '/\[appStream\]/c\[AppStream\]' /etc/yum.repos.d/almalinux-appstream.repo &>/dev/null
sed -i '/\[baseos\]/c\[BaseOS\]' /etc/yum.repos.d/almalinux-baseos.repo &>/dev/null
sed -i '/\[baseOS\]/c\[BaseOS\]' /etc/yum.repos.d/almalinux-baseos.repo &>/dev/null
yum remove -y repo-brainy-v3
rpm -Uv --replacepkgs http://core.brainycp.com/repo/alma-brainy-repo-v3-9.0-2.el9.noarch.rpm
rpm -Uv --install http://brainyrepo1.brainycp.com/centos/repo/repo-brainy-v3a-9.0-2.el9.noarch.rpm
echo '' > /etc/yum/pluginconf.d/versionlock.list
yum clean all
yum -y update openssl
yum remove -y compat-openssl11
yum install -y compat-openssl11 --disablerepo="*" --enablerepo="myrepo-centos"
yum update -y crypto-policies
yum remove -y nss_db
yum update -y glibc
yum remove -y libtirpc-devel
yum install -y libtirpc
yum update -y
yum remove -y firewalld-*
yum remove -y libpng15
yum -y install jailkit
yum -y remove brainy-php5*
yum -y install brainy-php5*
systemctl restart brainyphp-fpm
systemctl enable brainyphp-fpm
systemctl restart brainyphp-fpm
systemctl enable brainyphp-fpm
yum -y remove brainy-nginx
yum -y install brainy-nginx
systemctl restart nginxb
systemctl enable nginxb
sed -i 's/centos7/centos9/' /etc/brainy/globals.php
yum remove -y httpd-core
yum -y remove msodbcsql17 openh264-libs x264-libs openjpeg-libs libwebp4 libImageMagick-compact chkrootkit kvazaar-libs
yum -y install msodbcsql17 x264-libs ImageMagick libwebp
yum -y remove hugepages
yum -y install hugepages
yum -y remove nvidia-driver-cuda-libs
yum -y remove repo-kernel
yum -y module disable nginx php mariadb
version_mysql=$(cat /etc/brainy/mysql | grep -E 'mysql.*' |grep -oP '(?<=\").*?(?=\")')
if [ ! -f "/etc/my.cnf" ]; then
cp /etc/brainy/packet_manager/mysql/my.cnf /etc/my.cnf
fi
echo $version_mysql
case $version_mysql in
"MySql8.0")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mysql80-server mysql80 mysql80-libs exim-mysql80 dovecot-mysql80
;;
"MySql5.5")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mysql55 mysql55-server exim-mysql55 dovecot-mysql55
;;
"MySql5.6")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mysql56-server exim-mysql56 dovecot-mysql56
;;
"MySql5.7")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mysql57-server mysql57-libs mysql57 exim-mysql57 dovecot-mysql57
;;
"MariaDB10.11")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10.11-server mariadb10.11-client mariadb10.11-server-utils mariadb10.11-common mariadb10.11-libs mariadb10.11
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10.11 dovecot-mysql10.11
;;
"MariaDB10.1")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10-server mariadb10-common mariadb10-libs mariadb10
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10 dovecot-mysql10
;;
"MariaDB10.2")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10.2-server mariadb10.2-server-utils mariadb10.2-common mariadb10.2-libs mariadb10.2
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10.2 dovecot-mysql10.2
;;
"MariaDB10.3")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10.3-server mariadb10.3-server-utils mariadb10.3-common mariadb10.3-libs mariadb10.3
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10.3 dovecot-mysql10.3
;;
"MariaDB10.4")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10.4-server mariadb10.4-server-utils mariadb10.4-common mariadb10.4-libs mariadb10.4
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10.4 dovecot-mysql10.4
;;
"MariaDB10.5")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10.5-server mariadb10.5-client mariadb10.5-server-utils mariadb10.5-common mariadb10.5-libs mariadb10.5
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10.5 dovecot-mysql10.5
;;
"MariaDB10.6")
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install mariadb10.6-server mariadb10.6-client mariadb10.6-server-utils mariadb10.6-common mariadb10.6-libs mariadb10.6
yum --disablerepo=* --enablerepo=myrepo-centos,BaseOS,AppStream,extras,8_app,8_sql,8_php,9_brainy,brainy-python3_sb -y install exim-mysql10.6 dovecot-mysql10.6
;;
esac
rm -f /etc/systemd/system/mysql.service
rm -f /etc/systemd/system/mysqld.service
systemctl restart mysqld
systemctl disable mysqld
systemctl enable mysqld
/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p=exim 2>>/root/err_update.log 1>>/root/out_update.log
for dir in "/etc/brainy/packet_manager"/*/; do
# Вывод относительного пути текущей директории
relative_dir=$(basename "$dir")
# Если директория mysql, пропускаем её
if [ "$relative_dir" == "mysql" ] || [ "$relative_dir" == "sshd" ] || [ "$relative_dir" == "webserver" ]; then
continue
fi
if grep -q "$relative_dir=1" "/etc/brainy/conf/packet_manager2/main"; then
if grep -q "$relative_dir""_version=" "/etc/brainy/conf/packet_manager2/main"; then
#echo "$relative_dir""_version="
packet_version=$(grep -E "${relative_dir}_version=\".*\"" "/etc/brainy/conf/packet_manager2/main" | grep -oP '(?<=\=").*?(?=\")')
#packet_version=$(cat /etc/brainy/conf/packet_manager2/main | grep -E '"$relative_dir""_version=".*' |grep -oP '(?<=\").*?(?=\")')
#packet_version=$(cat /etc/brainy/conf/packet_manager2/main | grep -E ''$relative_dir"_version=".*' |grep -oP '(?<=\").*?(?=\")')
#echo $packet_version
echo "/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir" -v="$packet_version""
/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir" -v="$packet_version" 2>>/root/err_update.log 1>>/root/out_update.log
else
echo "/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir""
/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/quickinstaller.php -a=install -s=packet_manager2 -p="$relative_dir" 2>>/root/err_update.log 1>>/root/out_update.log
fi
fi
done
open_phps=$(grep '^open_phps=' "/etc/brainy/conf/server_control/main" | cut -d'=' -f2 | tr -d '"|()[]{}\n\r')
srv_confname=$(grep '^srv_confname=' "/etc/brainy/conf/server_control/main" | cut -d'=' -f2 | tr -d '"|()[]{}\n\r')
open_phps=$(echo "$open_phps" | tr -d '\n')
srv_confname=$(echo "$srv_confname" | tr -d '\n')
echo "/usr/local/brainycp/src/compiled/php5/bin/php -q /usr/local/brainycp/ssh/webserver.php -a=install -s="$srv_confname" -p="$open_phps""
/usr/local/brainycp/src/compiled/php5/bin/php -q /usr/local/brainycp/ssh/webserver.php -a=install -s="$srv_confname" -p="$open_phps" 2>>/root/err_update.log 1>>/root/out_update.log
echo ''
echo -e "\033[1;32mStep4. Finish Migrate centos7 -> almalinux9.\033[0m"
echo -e "\033[1;32mRebuild the hostaccount jail.\033[0m"
#echo 'Step4. Please reboot server'
echo '4' > $STAGE_FILE
;;
4)
echo "step5."
#/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/webserver.php -a=install -s=apache2.4 -p=php56w,php71w
#/usr/local/brainycp/src/compiled/php5/bin/php /usr/local/brainycp/ssh/webserver.php -a=install -s=apache2.4+nginx -p=php56w,php71w,php80w
;;
5)
;;
esac