TSM Quick Install Script (Linux)

#!/bin/bash

#TSM6.3.3 Auto-installation
#version: 1020523_Beta
#Edited by James

#Predefine variable
user="tsminst1"
group="tsmsrvrs"
pw="123456"
hostn=`hostname`
netip=`ifconfig bond0 | grep "inet addr" | awk '{ print $2 }' | awk 'BEGIN { FS=":" } { print $2 }'`
db="/tsmdb"
tsmlog="/tsmlog"
actlog="/tsmlog/act"
archlog="/tsmlog/arch"

cdrom="rhel6.4.iso"

srv="6.3.3.100-TIV-TSMALL-Linuxx86_64.bin"
ba="6.4.0.1-TIV-TSMBAC-LinuxX86.tar"
license="TIVsm-license-6.3.0-0.x86_64.rpm"
ac="6.3.3.000-TIV-TSMAC-Linuxx86.bin"

installlog="tsm_install.log"

#Give execute privelege
chmod -R +x ./*

#Install necessary packages by yum
mount -o loop ./iso/$cdrom /mnt
cp -p ./option/media.repo /etc/yum.repos.d/media.repo
yum -y groupinstall "Desktop"
yum -y groupinstall "Desktop Debugging and Performance Tools"
yum -y groupinstall "Desktop Platform Development"
yum -y groupinstall "X Window System"
yum -y groupinstall "Server Platform Development"
yum -y groupinstall "Development Tools"
yum -y groupinstall "Eclipse"
yum -y install libstdc++.so.5
yum -y install libstdc++.so.6
yum -y install compat-libstdc++-33-3.2.3-69.el6
yum -y install compat-glibc*
yum -y install openmotif22*
yum -y install openmotif*.i686
yum -y install libaio
yum -y install ksh
yum -y install rsh
yum -y install lsscsi

#Disable SELinux
cp -p /etc/sysconfig/selinux /etc/sysconfig/selinux.bak
sed -i 's/=enforcing/=disabled/g' /etc/sysconfig/selinux
echo "=====Disable SELinux=====" >> $installlog ; cat /etc/sysconfig/selinux | grep SELINUX=disabled >> $installlog
echo "" >> $installlog

#Disable NetworkManager
chkconfig NetworkManager off
echo "=====Disable NetworkManager=====" >> $installlog ; chkconfig --list | grep NetworkManager >> $installlog
echo "" >> $installlog

#Modify sysctl.conf
#sed -i '$a #TSM' /etc/sysctl.conf
#sed -i '$a kernel.shmmax = 268435456' /etc/sysctl.conf
#echo "=====Modify sysctl.conf=====" >> $installlog ; tail -n 2 /etc/sysctl.conf >> $installlog
#echo "" >> $installlog

#Modify /etc/hosts
sed -i '1i\$netip $hostn' /etc/hosts
echo "=====Modify /etc/hosts=====" >> $installlog ; cat /etc/hosts >> $installlog
echo "" >> $installlog

#Disable iptables
chkconfig iptables off
chkconfig ip6tables off
echo "=====Disable iptables=====" >> $installlog ; chkconfig --list | grep ip | grep table >> $installlog
echo "" >> $installlog

#Add TSM Instance User
groupadd "$group"
useradd -d /home/$user -m -g $group -s /bin/bash $user
echo $pw | passwd --stdin $user
echo "=====Add TSM Instance User=====" >> $installlog ; cat /etc/passwd | grep $user >> $installlog ; cat /etc/group | grep $group >> $installlog
echo "" >> $installlog

#Make directory
mkdir $tsmlog
mkdir $db
mkdir $actlog
mkdir $archlog
chown -R $user:$group $db $tsmlog

sync
echo "=====Make directory=====" >> $installlog
ls -al / | grep $user >> $installlog
echo "" >> $installlog

#Install TSM Server
#Version 6, Release 3, Level 3.100
chmod +x ./srv/*
cd srv
./$srv
./prereqcheck.bin -i console
echo -n "Continue to install TSM Server?"
read -p "[Y/N]:" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
    ./install.bin -i console
  else
    exit
fi
cd ..
read -p "PRESS <ANY KEY> TO NEXT STEP: "

#Setting db2 instance
#Create a Tivoli Storage Manager instance by issuing the db2icrt command.
echo "Setting db2icrt..."
echo "Completed db2icrt setting."
echo "=====Setting db2icrt=====" >> $installlog
/opt/tivoli/tsm/db2/instance/db2icrt -a server -s ese -u $user $user >> $installlog
echo "" >> $installlog

sed -i '$a export LD_LIBRARY_PATH=/usr/local/ibm/gsk8_64/lib64:$LD_LIBRARY_PATH' /home/$user/.bash_profile

#Configuring server option file.
echo "Setting dsmserv.opt..."
cp ./option/dsmserv.opt /home/$user/dsmserv.opt
sed -i 's/instance/'"$user"'/g' /home/$user/dsmserv.opt
sed -i 's/\/log1/\'"$actlog"'/g' /home/$user/dsmserv.opt
sed -i 's/\/log2/\'"$archlog"'/g' /home/$user/dsmserv.opt
chown $user:$group /home/$user/dsmserv.opt
echo "=====dsmserv.opt=====" >> $installlog
cat /home/$user/dsmserv.opt >> $installlog
echo "" >> $installlog

#Setting the server code page
#Set the DB2CODEPAGE system environment variable to 819 for each server instance.
su -c "/opt/tivoli/tsm/db2/adm/db2set -i $user DB2CODEPAGE=819" $user

#Formatting the database and log
echo "=====db2profile=====" >> $installlog
. /home/$user/sqllib/db2profile
cd /home/$user

echo "=====dsmserv format db=====" >> $installlog
nohup /opt/tivoli/tsm/server/bin/dsmserv -u $user -i /home/$user format dbdir=$db activelogdir=$actlog archlogdir=$archlog >> $installlog 2>&1
echo "" >> $installlog
cd -

#Modify userprofile
cp -p -f ./option/userprofile /home/$user/sqllib/userprofile
sed -i 's/instance/'"$user"'/g' /home/$user/sqllib/userprofile
echo "=====/sqllib/userprofile=====" >> $installlog
cat /home/$user/sqllib/userprofile >> $installlog
echo "" >> $installlog

#Modify tsmdbmgr.opt
cp -p -f ./option/tsmdbmgr.opt /home/$user/tsmdbmgr.opt
sed -i 's/TSMINST/'"$user"'/g' /home/$user/tsmdbmgr.opt
echo "=====tsmdbmgr.opt=====" >> $installlog
cat /home/$user/tsmdbmgr.opt >> $installlog
echo "" >> $installlog

#Modify TSM API dsm.sys configuration file.
cp -p -f ./option/dsm.sys /opt/tivoli/tsm/client/api/bin64/dsm.sys
sed -i 's/instance/'"$user"'/g' /opt/tivoli/tsm/client/api/bin64/dsm.sys
echo "=====/opt/tivoli/tsm/client/api/bin64/dsm.sys=====" >> $installlog
cat /opt/tivoli/tsm/client/api/bin64/dsm.sys >> $installlog
echo "" >> $installlog

#Stop and start the database instance
su -c "db2stop" $user
sleep 5s
su -c "db2start" $user
sleep 5s

#Select the dsmserv.rc script to automatically start servers.
cp /opt/tivoli/tsm/server/bin/dsmserv.rc /etc/rc.d/init.d/$user
echo "=====Check the chkconfig utility on daemon of $user=====" >> $installlog
chkconfig --list $user >> $installlog
chkconfig --add $user
chkconfig --level 3 $user on
chkconfig --level 5 $user on
echo "=====/etc/init.d/$user status=====" >> $installlog
service $user status >> $installlog
echo "" >> $installlog

#Install HSM Client
chmod +x ./ba/*
cd ba
tar xvf ./$ba
sleep 10s
rpm -e TIVsm-API
sleep 10s
rpm -e TIVsm-API64
sleep 10s
rpm -ivh TIVsm-API64.x86_64.rpm
rpm -ivh TIVsm-BA.x86_64.rpm
rpm -ivh TIVsm-APIcit.x86_64.rpm
rpm -ivh TIVsm-BAcit.x86_64.rpm
rpm -ivh TIVsm-filepath-6.3.0-0-rhel60.x86_64.rpm
rpm -ivh TIVsm-JBB.x86_64.rpm
cd ..
echo "=====show installed TIV* & gs* package=====" >> $installlog
rpm -qa | grep TIV  >> $installlog
rpm -qa | grep gsk >> $installlog
echo "" >> $installlog

#cp -p ./option/dsm.sys2 /opt/tivoli/tsm/client/api/bin/dsm.sys
cp -p ./option/dsm.sys2 /opt/tivoli/tsm/client/ba/bin/dsm.sys
cp -p /opt/tivoli/tsm/client/ba/bin/dsm.opt.smp /opt/tivoli/tsm/client/ba/bin/dsm.opt
#sed -i 's/ipaddr/'"$netip"'/g' /opt/tivoli/tsm/client/api/bin/dsm.sys
sed -i 's/ipaddr/'"$netip"'/g' /opt/tivoli/tsm/client/ba/bin/dsm.sys
echo "=====/opt/tivoli/tsm/client/ba/bin/dsm.sys=====" >> $installlog
cat /opt/tivoli/tsm/client/ba/bin/dsm.sys >> $installlog
echo "" >> $installlog
read -p "請確認上面元件移除安裝是否正確,確認完後按任一鍵進行下一步驟:"

#Register a role of admin in server console.
echo -ne "Please register a role of admin.\n"
echo -ne "Register method are as follow:\n"
echo -ne "===============================================\n"
echo -ne "# cd /home/$user ; source /home/$user/sqllib/db2profile\n"
echo -ne "# /opt/tivoli/tsm/server/bin/dsmserv -u $user -i /home/$user\n"
echo -ne "TSM:server1> REGister Admin admin_name password\n"
echo -ne "TSM:server1> GRant AUTHority admin_name CLasses=SYstem\n"
echo -ne "===============================================\n"
sleep 8s
echo -ne "\n"
read -p "If you register admin done,PRESS <ANY KEY> TO NEXT STEP: "
read -p "Please type the admin_name of dsmadmc: " dsmname
read -p "Please type the password of dsmadmc: " dsmpw
read -p "Make sure that the username: $dsmname and password $dsmpw are correct. [Y/N]:" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "=====register dsmadmc name & pw=====" >> $installlog
    echo -n "username: 「$dsmname」 and password 「$dsmpw」" >> $installlog
    echo "" >> $installlog
    echo "=====login dsmadmc=====" >> $installlog
    dsmadmc -id=admin -pass=admin "quit" >> $installlog
    echo "" >> $installlog
  else
    exit
fi

#Install TSM Server license
rpm -ivh ./srv/$license
echo "=====Register TSM Server License=====" >> $installlog
dsmadmc -id=admin -pass=admin "reg lic file=*.lic" >> $installlog
echo "" >> $installlog

#Initial.mac
#mkdir /tsm{bakcup,archive}
#echo "=====initial.mac=====" >> $installlog
#dsmadmc -id=admin -pass=admin "macro ./macro/initial.mac" >> $installlog
#echo "" >> $installlog

#Install Admin Center
#version: 6.3.3.000
chmod +x ./ac/*
cd ac
./$ac
./prereqcheck.bin
echo -n "Continue to install TSM Admin Center?"
read -p "[Y/N]:" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
    ./install.bin -i console
  else
    exit
fi
cd ..
read -p "PRESS <ANY KEY> TO NEXT STEP: "




Comments