meta data for this page
  •  

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
shell:auto_deploy_planner [2015/12/01 12:36] adminshell:auto_deploy_planner [2017/05/18 15:24] (aktuális) – külső szerkesztés 127.0.0.1
Sor 1: Sor 1:
-====== TSM Client Auto Deployment planner szkript ======+====== TSM Auto Deployment planner szkript ======
  
-A shell az Admin Center-t igyekszik kiváltani, legalábbis ami az Auto Client Deployment funkcióját illeti. Lekérdezi a beimportált autodeploy package-eket, és kilistázza. Ebből a listából választott package-hez meg kell adnunk milyen nevű ütemezést szeretnénk, mikor fusson, és mely node-okra állítsa be a deploy-t. A szkript "nagyjából" ellenőrzi, hogy a választott kliens(ek) operációs rendszere és architektúrája megegyezik-e azzal, amit telepítésre kiválasztottunk neki. Ha a szabályrendszer már kész, a helpjében leírtak (h parancs) szerint, akkor abba lehet innen is új telepítőkészleteket beimportálni (i paranccsal). Deploy feladatok futása után az "e" paranccsal lehet ezek sikerességét ellenőrizni. (Nem a Deploy ütemezésekét, hanem a node-ok kliens és cél verziószámát tudjuk ellenőrizni.)+A shell az Admin Center-t igyekszik kiváltani, legalábbis ami az Auto Deployment funkcióját illeti. Lekérdezi a beimportált autodeploy package-eket, és kilistázza. Ebből a listából választott package-hez meg kell adnunk milyen nevű ütemezést szeretnénk, mikor fusson, és mely node-okra állítsa be a deploy-t. A szkript "nagyjából" ellenőrzi, hogy a választott kliens(ek) operációs rendszere és architektúrája megegyezik-e azzal, amit telepítésre kiválasztottunk neki. Ha a szabályrendszer már kész, a helpjében leírtak (h parancs) szerint, akkor abba lehet innen is új telepítőkészleteket beimportálni (i paranccsal). Deploy feladatok futása után az "e" paranccsal lehet ezek sikerességét ellenőrizni. (Nem a Deploy ütemezésekét, hanem a node-ok kliens és cél verziószámát tudjuk ellenőrizni.)
  
 A hivatalos IBM dokumentum a manuálisan kivitelezett Auto Deploymentről: [[http://www-01.ibm.com/support/docview.wss?uid=swg21673299&aid=1|IBM Tivoli Storage Manager automatic deployment configuration]] A hivatalos IBM dokumentum a manuálisan kivitelezett Auto Deploymentről: [[http://www-01.ibm.com/support/docview.wss?uid=swg21673299&aid=1|IBM Tivoli Storage Manager automatic deployment configuration]]
Sor 32: Sor 32:
 clear clear
 # FEJLECT MEGRAJZOLASA # FEJLECT MEGRAJZOLASA
-FEJLEC="TSM Auto Client Deployment planner v1.3 (2015.09.24.)"+FEJLEC="TSM Auto Deployment planner v1.3 (2015.09.24.)"
 FEJLEC2="written by Peter Agoston" FEJLEC2="written by Peter Agoston"
 printf "${inv}" printf "${inv}"
Sor 76: Sor 76:
 printf " i  Uj telepitokeszlet beimportalasa a szerverre (.exp)\n" printf " i  Uj telepitokeszlet beimportalasa a szerverre (.exp)\n"
 printf " e  Auto Deployra jelolt node-ek kliens verzioinak ellenorzese\n" printf " e  Auto Deployra jelolt node-ek kliens verzioinak ellenorzese\n"
 +printf " f  Auto Deployra jelolt node-ek kliens verzioinak ellenorzese (csak sikerteleneket mutat)\n"
 +printf " d  Auto Deploy kliens üzenetek keresése node-hoz az activity logban.\n"
 printf " h  Segitseg a hasznalathoz\n" printf " h  Segitseg a hasznalathoz\n"
 printf " q  Kilepes\n" printf " q  Kilepes\n"
Sor 114: Sor 116:
    
 HELP HELP
 +# HIBAKERESES FUNKCIO
 +        elif [[ $DEPL_PACK_ID = "d" ]]; then
 +                printf "${whi}Meilyik node-ot nyomozzuk? ${end}"
 +                read NODE_TO_DEBUG
 +                $DSMADMC "select date_time, message from actlog where (date_time \> current_timestamp - 168 hours) and msgno in (4263,4264,4242,4212,4274,4210,4213,4220,4215,4260,4259,4273,4276,4271,4243,4206,4253,4298) and nodename=upper('$NODE_TO_DEBUG') order by date_time desc"
 +        echo
 # ELLENORZES FUNKCIO # ELLENORZES FUNKCIO
  elif [[ $DEPL_PACK_ID = "e" ]]; then  elif [[ $DEPL_PACK_ID = "e" ]]; then
Sor 121: Sor 129:
         printf "${whi}-----------------------     -----------------------     -------------------     ---     ------------${gry}\n" | tee -a $RESULT_CHECK_FILE         printf "${whi}-----------------------     -----------------------     -------------------     ---     ------------${gry}\n" | tee -a $RESULT_CHECK_FILE
             $DSMADMC "$SQL_DEPLOYED_NODES" | sed "s/!!/${red}!!${gry}/" | tee -a $RESULT_CHECK_FILE             $DSMADMC "$SQL_DEPLOYED_NODES" | sed "s/!!/${red}!!${gry}/" | tee -a $RESULT_CHECK_FILE
 +            printf "${end}\n" | tee -a $RESULT_CHECK_FILE
 +            echo "A listat ebbe a fajlba is kiirtam: $RESULT_CHECK_FILE"
 +            echo
 +# ELLENORZES FUNKCIO (CSAK SIKERTELENEK)
 + elif [[ $DEPL_PACK_ID = "e" ]]; then
 +        printf "${red}" > $RESULT_CHECK_FILE
 +        date >> $RESULT_CHECK_FILE
 +        printf "${whi}NODE                        SCHEDULE                    CLIENT - TARGET         C=T     OS_VERSION\n" | tee -a $RESULT_CHECK_FILE
 +        printf "${whi}-----------------------     -----------------------     -------------------     ---     ------------${gry}\n" | tee -a $RESULT_CHECK_FILE
 +            $DSMADMC "$SQL_DEPLOYED_NODES" | grep '!!' | sed "s/!!/${red}!!${gry}/" | tee -a $RESULT_CHECK_FILE
             printf "${end}\n" | tee -a $RESULT_CHECK_FILE             printf "${end}\n" | tee -a $RESULT_CHECK_FILE
             echo "A listat ebbe a fajlba is kiirtam: $RESULT_CHECK_FILE"             echo "A listat ebbe a fajlba is kiirtam: $RESULT_CHECK_FILE"
Sor 152: Sor 170:
     for NODE in $DEPL_NODE_NAME; do     for NODE in $DEPL_NODE_NAME; do
       echo "${yel}#### $NODE ####${end}"       echo "${yel}#### $NODE ####${end}"
-      DELP_DOM_NAME=$($DSMADMC "select domain_name from nodes where node_name=upper('${NODE}')" | sed 's/ //g'+      DEPL_DOM_NAME=$($DSMADMC "select domain_name from nodes where node_name=upper('${NODE}')" | sed 's/ //g'
-      if [[ $(echo $DELP_DOM_NAME) =~ ^ANR[0-9]{4} ]]; then printf "${red}Ilyen node talan nincs. Ellenorizd!${end}\n\n"; continue; fi+      if [[ $(echo $DEPL_DOM_NAME) =~ ^ANR[0-9]{4} ]]; then printf "${red}Ilyen node talan nincs. Ellenorizd!${end}\n\n"; continue; fi
       case "${PLATFORM[$DEPL_PACK_ID]}" in       case "${PLATFORM[$DEPL_PACK_ID]}" in
         Windows)         Windows)
-        IS_OS_OK=$($DSMADMC "SELECT count(node_name) FROM NODES WHERE (LOWER(PLATFORM_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%') OR LOWER(CLIENT_OS_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%')) AND (LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%${ARCHITECTURE[$DEPL_PACK_ID]}%') OR TRIM(CLIENT_SYSTEM_ARCHITECTURE) = '' OR CLIENT_SYSTEM_ARCHITECTURE IS NULL) AND (LOWER(PLATFORM_NAME) NOT LIKE '%deploymgr%') and node_name=('$NODE')")+        IS_OS_OK=$($DSMADMC "SELECT count(node_name) FROM NODES WHERE (LOWER(PLATFORM_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%') OR LOWER(CLIENT_OS_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%')) AND (LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%${ARCHITECTURE[$DEPL_PACK_ID]}%') OR TRIM(CLIENT_SYSTEM_ARCHITECTURE) = '' OR CLIENT_SYSTEM_ARCHITECTURE IS NULL) AND (LOWER(PLATFORM_NAME) NOT LIKE '%deploymgr%') and node_name=upper('$NODE')")
         ;;         ;;
-        Linux|AIX)+        Linux)
         IS_OS_OK=$($DSMADMC "SELECT count(node_name) FROM NODES WHERE (LOWER(PLATFORM_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%') OR LOWER(CLIENT_OS_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%')) AND (LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%x86%') OR LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%x64%') OR TRIM(CLIENT_SYSTEM_ARCHITECTURE) = '' OR CLIENT_SYSTEM_ARCHITECTURE IS NULL) AND (LOWER(PLATFORM_NAME) NOT LIKE '%deploymgr%') and node_name=upper('$NODE')")         IS_OS_OK=$($DSMADMC "SELECT count(node_name) FROM NODES WHERE (LOWER(PLATFORM_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%') OR LOWER(CLIENT_OS_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%')) AND (LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%x86%') OR LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%x64%') OR TRIM(CLIENT_SYSTEM_ARCHITECTURE) = '' OR CLIENT_SYSTEM_ARCHITECTURE IS NULL) AND (LOWER(PLATFORM_NAME) NOT LIKE '%deploymgr%') and node_name=upper('$NODE')")
 +        ;;
 +        AIX)
 +        IS_OS_OK=$($DSMADMC "SELECT count(node_name) FROM NODES WHERE (LOWER(PLATFORM_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%') OR LOWER(CLIENT_OS_NAME) LIKE LOWER ('%${PLATFORM[$DEPL_PACK_ID]}%')) AND (LOWER(CLIENT_SYSTEM_ARCHITECTURE) LIKE LOWER('%ppc%') OR TRIM(CLIENT_SYSTEM_ARCHITECTURE) = '' OR CLIENT_SYSTEM_ARCHITECTURE IS NULL) AND (LOWER(PLATFORM_NAME) NOT LIKE '%deploymgr%') and node_name=upper('$NODE')")
         ;;         ;;
         *)         *)
Sor 175: Sor 196:
       case "${PLATFORM[$DEPL_PACK_ID]}" in       case "${PLATFORM[$DEPL_PACK_ID]}" in
         Windows)         Windows)
-        $DSMADMC "DEFINE SCHEDULE ${DELP_DOM_NAME} ${DEPL_SCH_NAME} ACTION=DEPLOY OBJECTS='${FILESPACE[$DEPL_PACK_ID]}${HL_NAME[$DEPL_PACK_ID]}\* ..\IBM_ANR_WIN\\' DURATION=1 DURUNITS=HOURS PERUNITS=ONETIME STARTDATE=${STARTDATE} STARTTIME=${STARTTIME} OPTIONS=\"-FROMNODE=${PACK_NODE[$DEPL_PACK_ID]} -POSTSCHEDULECMD='..\IBM_ANR_WIN\V${VERSIONNUM}\\${LL_NAME[$DEPL_PACK_ID]} SCHEDULE=${DEPL_SCH_NAME} DOMAIN=${DELP_DOM_NAME} AUTODEPLOY=NOREBOOT nodeinfo=TBD' -SUB=YES -REPLACE=ALL\"" | tee $TMP_FILE >> $LOG_FILE;+        $DSMADMC "DEFINE SCHEDULE ${DEPL_DOM_NAME} ${DEPL_SCH_NAME} ACTION=DEPLOY OBJECTS='${FILESPACE[$DEPL_PACK_ID]}${HL_NAME[$DEPL_PACK_ID]}\* ..\IBM_ANR_WIN\\' DURATION=1 DURUNITS=HOURS PERUNITS=ONETIME STARTDATE=${STARTDATE} STARTTIME=${STARTTIME} OPTIONS=\"-FROMNODE=${PACK_NODE[$DEPL_PACK_ID]} -POSTSCHEDULECMD='..\IBM_ANR_WIN\V${VERSIONNUM}\\${LL_NAME[$DEPL_PACK_ID]} SCHEDULE=${DEPL_SCH_NAME} DOMAIN=${DEPL_DOM_NAME} AUTODEPLOY=NOREBOOT nodeinfo=TBD' -SUB=YES -REPLACE=ALL\"" | tee $TMP_FILE >> $LOG_FILE;
         ;;         ;;
         Linux)         Linux)
-        $DSMADMC "DEFINE SCHEDULE ${DELP_DOM_NAME} ${DEPL_SCH_NAME} ACTION=DEPLOY OBJECTS='${HL_NAME[$DEPL_PACK_ID]}* /opt/tivoli/tsm/client/IBM_ANR_UNX/' DURATION=1 DURUNITS=HOURS PERUNITS=ONETIME STARTDATE=${STARTDATE} STARTTIME=${STARTTIME} OPTIONS=\"-FROMNODE=${PACK_NODE[$DEPL_PACK_ID]} -POSTSCHEDULECMD='/opt/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/${LL_NAME[$DEPL_PACK_ID]}>/opt/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/upmin#SCHEDULE=${DEPL_SCH_NAME}#DOMAIN=${DELP_DOM_NAME}#nodeinfo2=TBD' -SUB=YES -REPLACE=ALL\"" | tee $TMP_FILE >> $LOG_FILE;+        $DSMADMC "DEFINE SCHEDULE ${DEPL_DOM_NAME} ${DEPL_SCH_NAME} ACTION=DEPLOY OBJECTS='${HL_NAME[$DEPL_PACK_ID]}* /opt/tivoli/tsm/client/IBM_ANR_UNX/' DURATION=1 DURUNITS=HOURS PERUNITS=ONETIME STARTDATE=${STARTDATE} STARTTIME=${STARTTIME} OPTIONS=\"-FROMNODE=${PACK_NODE[$DEPL_PACK_ID]} -POSTSCHEDULECMD='/opt/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/${LL_NAME[$DEPL_PACK_ID]}>/opt/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/upmin#SCHEDULE=${DEPL_SCH_NAME}#DOMAIN=${DEPL_DOM_NAME}#nodeinfo2=TBD' -SUB=YES -REPLACE=ALL\"" | tee $TMP_FILE >> $LOG_FILE;
         ;;         ;;
         AIX)         AIX)
-        $DSMADMC "DEFINE SCHEDULE ${DELP_DOM_NAME} ${DEPL_SCH_NAME} ACTION=DEPLOY OBJECTS='${HL_NAME[$DEPL_PACK_ID]}* /usr/tivoli/tsm/client/IBM_ANR_UNX/' DURATION=1 DURUNITS=HOURS PERUNITS=ONETIME STARTDATE=${STARTDATE} STARTTIME=${STARTTIME} OPTIONS=\"-FROMNODE=${PACK_NODE[$DEPL_PACK_ID]} -POSTSCHEDULECMD='/usr/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/${LL_NAME[$DEPL_PACK_ID]}>/usr/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/upmin#SCHEDULE=${DEPL_SCH_NAME}#DOMAIN=${DELP_DOM_NAME}#nodeinfo2=TBD' -SUB=YES -REPLACE=ALL\"" | tee $TMP_FILE >> $LOG_FILE;+        $DSMADMC "DEFINE SCHEDULE ${DEPL_DOM_NAME} ${DEPL_SCH_NAME} ACTION=DEPLOY OBJECTS='${HL_NAME[$DEPL_PACK_ID]}* /usr/tivoli/tsm/client/IBM_ANR_UNX/' DURATION=1 DURUNITS=HOURS PERUNITS=ONETIME STARTDATE=${STARTDATE} STARTTIME=${STARTTIME} OPTIONS=\"-FROMNODE=${PACK_NODE[$DEPL_PACK_ID]} -POSTSCHEDULECMD='/usr/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/${LL_NAME[$DEPL_PACK_ID]}>/usr/tivoli/tsm/client/IBM_ANR_UNX/v${VERSIONNUM}/upmin#SCHEDULE=${DEPL_SCH_NAME}#DOMAIN=${DEPL_DOM_NAME}#nodeinfo2=TBD' -SUB=YES -REPLACE=ALL\"" | tee $TMP_FILE >> $LOG_FILE;
         ;;         ;;
         *)         *)
Sor 191: Sor 212:
         printf "${red}A(z) ${DEPL_SCH_NAME} utemezes bedefinialasa sikertelen!${end}\n\n"         printf "${red}A(z) ${DEPL_SCH_NAME} utemezes bedefinialasa sikertelen!${end}\n\n"
         if [[ $(grep -c "ANR2618E" $TMP_FILE) -gt 0 ]]; then         if [[ $(grep -c "ANR2618E" $TMP_FILE) -gt 0 ]]; then
-            printf "A ${DELP_DOM_NAME} domainben mar letezik ilyen utemezes, lasd alabb. Hozzarendeljem ezt a node-ot (is) ehhez?\n${gry}"  +            printf "A ${DEPL_DOM_NAME} domainben mar letezik ilyen utemezes, lasd alabb. Hozzarendeljem ezt a node-ot (is) ehhez?\n${gry}"  
-            $DSMADMC "QUERY SCHEDULE ${DELP_DOM_NAME} ${DEPL_SCH_NAME}"+            $DSMADMC "QUERY SCHEDULE ${DEPL_DOM_NAME} ${DEPL_SCH_NAME}"
         fi         fi
         printf "${end}[i/n]:"         printf "${end}[i/n]:"
Sor 207: Sor 228:
       fi       fi
 # NODE ASSZOCIACIOK BEDEFINIALASA # NODE ASSZOCIACIOK BEDEFINIALASA
-      $DSMADMC "DEFINE ASSOCIATION ${DELP_DOM_NAME} ${DEPL_SCH_NAME} ${NODE}" | tee -a $LOG_FILE+      $DSMADMC "DEFINE ASSOCIATION ${DEPL_DOM_NAME} ${DEPL_SCH_NAME} ${NODE}" | tee -a $LOG_FILE
       if [[ ${PIPESTATUS[0]} -ne 0 ]]; then       if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
         printf "${red}A(z) $NODE node hozzarendelese a(z) ${DEPL_SCH_NAME} utemezeshez sikertelen!${end}\n\n" | tee -a $LOG_FILE         printf "${red}A(z) $NODE node hozzarendelese a(z) ${DEPL_SCH_NAME} utemezeshez sikertelen!${end}\n\n" | tee -a $LOG_FILE