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 ===== | ||