This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
aix:install_upgr_rpm [2021/01/01 21:21] 127.0.0.1 external edit |
aix:install_upgr_rpm [2024/08/21 17:41] (current) manu |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== Install and Upgrade AIX packages ===== | ||
+ | |||
+ | Using no argument, verbose only, with -f for fix (apply) | ||
+ | <cli prompt='#'> | ||
+ | [root@nimsrv]/root/scripts# cat upgrade_aix.sh | ||
+ | </cli> | ||
+ | |||
+ | <code> | ||
+ | #!/usr/bin/ksh93 | ||
+ | # set -x | ||
+ | ################################################## | ||
+ | #@(#) Upgrade AIX | ||
+ | ################################################## | ||
+ | # v1.1 06-2023 add verbose default | ||
+ | ################################################## | ||
+ | |||
+ | dir=`dirname $0` | ||
+ | if [ -f $dir/.env ] | ||
+ | then | ||
+ | . $dir/.env | ||
+ | else | ||
+ | path_script=$dir | ||
+ | export sn=`basename $0 | cut -d. -f1` | ||
+ | export logpath=/tmp | ||
+ | export logname=$logpath/$sn.log | ||
+ | fi | ||
+ | |||
+ | aixleveltl=$(echo ${aixmain}${tl} | sed 's/\(.\)/\1\./g') | ||
+ | localmpt=/mnt | ||
+ | nimserver=aixna001 # Server containing RPM and export NFS | ||
+ | nimrpm=/export/aix7200-05/aix7200-05-07_lpp # location on NFS mount point Ex: /export/softs/rpm/aix71 | ||
+ | |||
+ | |||
+ | #------------------------------------------------ | ||
+ | usage() | ||
+ | { | ||
+ | echo "Usage: (" "|-f)" | ||
+ | echo "\tInstall BASE RPM package, and check if upgrades are needed" | ||
+ | echo "\t-f: fix apply RPM (default no)" | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | nfs_mount () | ||
+ | { | ||
+ | echo "###### NFS mount" | ||
+ | oslevel -s | ||
+ | mount -o vers=4,soft $nimserver:$nimrpm $localmpt | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | altdisk () | ||
+ | { | ||
+ | cfgmgr | ||
+ | |||
+ | altpv=$(lsmpio -q | grep '_ROOTVG_ALT' | awk '{print $1}') | ||
+ | if [[ "$altpv" == "" ]] | ||
+ | then | ||
+ | echo "#### ERROR NO DISK FOUND for ALTERNATE" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | for vg in $(lsvg | grep rootvg | egrep 'alt_|old_') | ||
+ | do | ||
+ | exportvg $vg | ||
+ | done | ||
+ | |||
+ | alt_disk_copy -d $altpv -B | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | remove_efix () | ||
+ | { | ||
+ | |||
+ | # Remove only efix that won't be present at the end | ||
+ | cat $localmpt/efix/install_efix.sh | grep emgr | rev | cut -d'/' -f1 | rev | cut -d'.' -f1 | sort -u > $tempfile.1 | ||
+ | emgr -P | grep installp | rev | awk '{print $1}' | rev | sort -u > $tempfile.2 | ||
+ | sdiff -w 80 $tempfile.1 $tempfile.2 | grep '>' | awk '{print $1}' > $tempfile | ||
+ | |||
+ | for efix in $(cat $tempfile) | ||
+ | do | ||
+ | echo "###### $efix" | ||
+ | emgr -rL $efix | ||
+ | done | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | update_aix () | ||
+ | { | ||
+ | echo "###### Update AIX" | ||
+ | install_all_updates -d $localmpt -rc -Y | ||
+ | |||
+ | echo 1 | $localmpt/license/idsLicense | ||
+ | installp -agXY -d $localmpt GSKit8.gskcrypt64 GSKit8.gskssl64 | ||
+ | installp -agXY -d $localmpt idsldap.clt32bit64.rte idsldap.clt64bit64.rte idsldap.clt_max_crypto32bit64.rte idsldap.clt_max_crypto64bit64.rte idsldap.cltbase64.adt idsldap.cltbase64.rte idsldap.license64.rte | ||
+ | |||
+ | |||
+ | emgr -e $localmpt/openssh_fix15/38408m9b.230811.epkg.Z | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | check_free_space () | ||
+ | { | ||
+ | echo "###### Check free space on /opt" | ||
+ | if [ $(df -mc | grep '/dev/hd10opt' | cut -d':' -f3 | sed 's/\./\ /' | awk '{print $1}') -lt "300" ] | ||
+ | then | ||
+ | echo "extending /opt" | ||
+ | chfs -a size=+300M /opt | ||
+ | else | ||
+ | echo "Filesystem /opt OK" | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | update_rpm () | ||
+ | { | ||
+ | echo "###### Update RPM" | ||
+ | sudo=$(rpm -qa | grep sudo) | ||
+ | if [ $(echo $sudo | grep -q 'sudo_ids'; echo $?) -ne "0" ] | ||
+ | then | ||
+ | yum -y remove $sudo | ||
+ | yum -y install sudo_ids | ||
+ | fi | ||
+ | |||
+ | yum -y update | ||
+ | /usr/sbin/updtvpkg | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | restart_services () | ||
+ | { | ||
+ | stopsrc -s nimsh ; startsrc -s nimsh | ||
+ | stopsrc -g rsct_rm ; stopsrc -g rsct ; startsrc -g rsct ; startsrc -g rsct_rm | ||
+ | stopsrc -s xntpd ; startsrc -s xntpd | ||
+ | stopsrc -s sendmail ; startsrc -s sendmail -a "-bd -q30m"; ps -ef | grep -v grep | grep sendmail | ||
+ | } | ||
+ | |||
+ | #------------------------------------------------ | ||
+ | nfs_umount () | ||
+ | { | ||
+ | echo "###### NFS umount" | ||
+ | oslevel -s | ||
+ | umount $localmpt | ||
+ | } | ||
+ | |||
+ | ############################################# | ||
+ | # main | ||
+ | main () | ||
+ | { | ||
+ | date '+%d-%m-%Y %H:%M' | ||
+ | |||
+ | if [[ $(oslevel | sed 's/\.//g') != "7200" ]] | ||
+ | then | ||
+ | echo "BAD AIX level" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | if [ $(ls /usr/ios/cli/ioscli > /dev/null 2>&1; echo $?) -eq "0" ] | ||
+ | then | ||
+ | echo "BAD AIX level VIOS !!!!" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | |||
+ | |||
+ | altdisk | ||
+ | if [ $? -ne "0" ] | ||
+ | then | ||
+ | echo "EXIT" | ||
+ | exit 1 | ||
+ | fi | ||
+ | date '+%d-%m-%Y %H:%M' | ||
+ | nfs_mount | ||
+ | date '+%d-%m-%Y %H:%M' | ||
+ | update_aix | ||
+ | date '+%d-%m-%Y %H:%M' | ||
+ | check_free_space | ||
+ | update_rpm | ||
+ | date '+%d-%m-%Y %H:%M' | ||
+ | nfs_umount | ||
+ | restart_services | ||
+ | date '+%d-%m-%Y %H:%M' | ||
+ | |||
+ | oslevel -s | ||
+ | instfix -ci | grep :-: | ||
+ | lppchk -v | ||
+ | } | ||
+ | |||
+ | main > $logname 2>&1 | ||
+ | </code> | ||
+ | |||
===== Install and Upgrade RPM packages ===== | ===== Install and Upgrade RPM packages ===== | ||