This Guide describes how to upgrade LiCO container from V7.2.1 to V7.2.2.
Before upgrading LiCO, ensure the version of the operating system, OpenHPC, and Icinga are listed in the following table. To use LiCO 7.2.2 in the required operating system, install LiCO 7.2.2 by following the instructions of LiCO 7.2.2 Installation Guide (for EL8).
LiCO version | Red Hat (RHEL) | Rocky/EL8 | Lenovo OpenHPC version | Icinga version |
---|---|---|---|---|
V7.2.1 | 8.8 | 8.8 | 2.8 | 2.14.2 |
V7.2.2 | 8.8 | 8.8 | 2.8 | 2.14.2 |
lico-control stop
docker rename lico lico_7.2.1
# Management node hostname
sms_name="head"
# IP address of management node
sms_ip="192.168.0.2"
# Old version of repository directory for LiCO and the version of LiCO in
# the current system
original_lico_repo_dir="/install/custom/lico-7.2.1"
# Old version of repository directory for LiCO-dep and
# the version of LiCO-dep in the current system
original_lico_dep_repo_dir="/install/custom/lico-dep-7.2.1"
# New version of repository directory for LiCO, please change it according to LiCO version
new_lico_repo_dir="/install/custom/lico-7.2.2"
# New version of LiCO repository directory for LiCO-dep,
# please change it according to LiCO-dep version
new_lico_dep_repo_dir="/install/custom/lico-dep-7.2.2"
# Link name of LiCO repository directory for LiCO
link_lico_repo_dir="/install/custom/lico"
# Link name of LiCO repository directory for LiCO-dep
link_lico_dep_repo_dir="/install/custom/lico-dep"
# Existing shared directories for LiCO
lico_share_dir="/home"
# Shared directories of repo file in LiCO Installation Guide
share_installer_dir="/install/installer"
# link name of directory for lico moniotr
link_lico_monitor_dir="/install/custom/lico-monitor"
# Local directory for for lico monitor, please change it according to this version.
lico_monitor_dir="/install/custom/lico-monitor-1.1.2"
chmod 600 lico_release.local
source lico_release.local
Lenovo-OpenHPC-2.8.EL8.x86_64.tar:
https://hpc.lenovo.com/lico/downloads/7.2.2/Lenovo-OpenHPC-2.8.EL8.x86_64.tar
lico-dep-7.2.2.el8.x86_64.tgz:
https://hpc.lenovo.com/lico/downloads/7.2.2/lico-dep-7.2.2.el8.x86_64.tgz
authselect.tar.gz:
https://hpc.lenovo.com/lico/downloads/7.2.2/examples/conf/authselect/authselect.tar.gz
LiCO 7.2.2 release package lico-release-7.2.2.el8.x86_64.tar.gz:
https://commercial.lenovo.com/cn/en/signin
LiCO 7.2.2 docker package lico-docker-7.2.2.x86_64.tar.gz:
https://commercial.lenovo.com/cn/en/signin
LiCO 7.2.2 monitor package openlico-monitor-1.1.2.x86_64.tgz:
https://commercial.lenovo.com/cn/en/signin
cd /root
lico_container_workspace="/root/lico-workspace/7.2.2"
mkdir -p $lico_container_workspace
tar -xzvf lico-docker-7.2.2.x86_64.tar.gz -C $lico_container_workspace
mv Lenovo-OpenHPC-2.8.EL8.x86_64.tar $lico_container_workspace
mv lico-dep-7.2.2.el8.x86_64.tgz $lico_container_workspace
mv lico-release-7.2.2.el8.x86_64.tar.gz $lico_container_workspace
mv authselect.tar.gz $lico_container_workspace
cp $lico_container_workspace/lico-docker/Dockerfile \
$lico_container_workspace/lico-docker/scripts/build.sh $lico_container_workspace
\cp $lico_container_workspace/lico-docker/scripts/lico-control /usr/bin/
chmod +x $lico_container_workspace/build.sh
chmod +x /usr/bin/lico-control
cd $lico_container_workspace
./build.sh
backup_dir=/root/lico_7.2.1_backup/
mkdir -p $backup_dir
cd $lico_container_workspace/lico-docker/upgrade
python3 container-upgrade backup --backup-path $backup_dir --backup-db --backup-config --backup-sharedir
If the /opt/lico/cloud/azure/slurm.conf
file exists, back it up:
cp /opt/lico/cloud/azure/slurm.conf /opt/lico/cloud/azure/slurm.conf.bak
systemctl stop icinga2
nodeshell all systemctl stop icinga2
rm -rf /opt/lico/pub/monitor
mkdir -p $lico_monitor_dir
cd /root
tar -xvzf openlico-monitor-1.1.2.x86_64.tgz -C $lico_monitor_dir
rm -rf $link_lico_monitor_dir
ln -s $lico_monitor_dir $link_lico_monitor_dir
cd $link_lico_monitor_dir
python3 $link_lico_monitor_dir/install.py -p python3.9
icinga_backup="/install/icinga2/backup"
mkdir -p $icinga_backup
Backup the existing configuration files:
mv /etc/icinga2/zones.d/global-templates/commands.conf $icinga_backup
Download commands.conf from the following command and replace it to /etc/icinga2/zones.d/global-templates.
cd /etc/icinga2/zones.d/global-templates/
curl -O https://hpc.lenovo.com/lico/downloads/7.2.2/examples/conf/icinga2/commands/slurm/commands.conf
Modify the privileges
chown -R icinga:icinga /etc/icinga2/zones.d/global-templates
Backup the existing configuration files:
cp /etc/icinga2/zones.d/master/hosts.conf $icinga_backup
mv /etc/icinga2/zones.d/master/service.conf $icinga_backup
Locate the configuration information of the Icinga 2 management node in the /etc/icinga2/zones.d/master/hosts.conf file, and set the configuration entry as vars.is_master = 1. Following is an example whose management node name is head.
object Host "head" {
check_command = "hostalive"
address = "192.168.0.1"
vars.is_master = 1
vars.agent_endpoint = name
}
Download service.conf from https://hpc.lenovo.com/lico/downloads/7.2.2/examples/conf/icinga2/ and upload it to /etc/icinga2/zones.d/master
Modify the privileges:
chown -R icinga:icinga /etc/icinga2/zones.d/master
Backup the existing configuration files:
cp /etc/icinga2/features-available/influxdb.conf $icinga_backup
Download influxdb.conf from https://hpc.lenovo.com/lico/downloads/7.2.2/examples/conf/icinga2/ and upload it to /etc/icinga2/features-available/
Update the configuration according to the configuration items in the original configuration file:
host = "<telegraf server address>"
port = 9081
basic_auth = {
username = "<telegraf authentication username>"
password = "<telegraf authentication password>"
}
nodeshell all systemctl restart icinga2
systemctl restart icinga2
rm -rf /etc/lico
lico-control prepare
cp $backup_dir/head/configure/lico/nodes.csv /etc/lico/
cd /root/lico-workspace/7.2.2/lico-docker/upgrade/
python3 container-upgrade merge-config --backup-path $backup_dir
If the /opt/lico/cloud/azure/slurm.conf.bak
file exists, restore it:
mv /opt/lico/cloud/azure/slurm.conf.bak /opt/lico/cloud/azure/slurm.conf
[DATABASE]
HOST = '127.0.0.1'
PORT = 3306
[TRANSITER]
HOST = '127.0.0.1'
PORT = 22
lico-control init --mode lico
lico-control init --mode cloudtools
lico-control run
lico-control docker-cmd remove lico_7.2.1
lico-control stop
lico-control docker-cmd rename lico lico_7.2.2
cd $lico_container_workspace/lico-docker/upgrade/
python3 container-rollback --backup-path $backup_dir --restore-db --restore-sharedir
systemctl stop icinga2
nodeshell all systemctl stop icinga2
rm -rf /opt/lico/pub/monitor
source lico_env.local
mkdir -p $lico_monitor_dir
tar -xvzf openlico-monitor-1.1.1.x86_64.tgz -C $lico_monitor_dir
rm -rf $link_lico_monitor_dir
rm -rf $new_lico_monitor_dir
ln -s $lico_monitor_dir $link_lico_monitor_dir
python3 $link_lico_monitor_dir/install.py
nodeshell all systemctl restart icinga2
systemctl restart icinga2
lico-control run --image lico:7.2.1
lico-control docker-cmd remove lico_7.2.2