Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Users frequently perform patching of hosts used by a JS7 environment. This is not related to JS7 - Patch Management of JS7 products, but to patching of a host a OS level or application level.

In many situations patching includes to reboot the host. Users would like know in advance to what extent a reboot will affect JS7 scheduling operation. This implies use of clustering for JOC Cockpit, Controller and Agents, see JS7 - Cluster Architecture: in a JS7 cluster outage of one or two hosts keeps allows to continue operation, outages of more hosts can make the cluster non-functional.

Examples for fatal outages:

  • if both Primary and Secondary JOC Cockpit instances are shutdown, then the Controller Cluster will continue to work. However, fail-over and restart of Controller instances will require user intervention,.
  • if both Primary and Secondary Controller instances are shutdown, then an Agent Cluster will continue to work. However, fail-over and restart of Director Agent instances will require user intervention,.

Impact Check Script

The script is a stub that can be adjusted and applied for frequently used operations:

  • The script is available for Linux and MacOS® using bash shell.
  • The script terminates with exit code 0 to signal that the there will not be a fatal impact of the outage scenario, other exit codes signal fatal impact on JS7 scheduling operation.
  • The script is intended as a baseline example for customization by JS7 users and by SOS within the scope of professional services. Examples make use of JS7 Release 2.7.2, bash 4.2.


Code Block
languagebash
#!/bin/bash

# set common options for connection to the JS7 REST Web Service
request_options=(--url=http://joc-2-0-primary.sos:7446 --user=root --password=root --ca-cert=./root-ca.crt --controller-id=controller --agent-cluster)

# hosts to be patched
hosts=(joc-2-0-primary joc-2-0-secondary controller-2-0-primary controller-2-0-secondary diragent-2-0-primary diragent-2-0-secondary)

# max. number of tries
tries=3

# delay in seconds between retries
delay=10

for host in "${hosts[@]}"; do
    echo "--------------------------------------------------------"
    echo "CHECKING SHUTDOWN IMPACT OF HOST: $host"
    echo "--------------------------------------------------------"

    try=1
    while [ "$try" -le "$tries" ]; do
        echo ""
        echo "TRY $try/$tries: ./bin/operate-joc.sh health-check "${request_options[@]}" --whatif-shutdown=$host"
        echo ""
        ./bin/operate-joc.sh health-status "${request_options[@]}" --whatif-shutdown="$host"
        rc=$?
        echo -n ""

        case "$rc" in
            0)  break;
                ;;
            3)  sleep "$delay"
                ;;
            *)  exit "$rc"
                ;;
        esac

        try=$((try+1))
    done

    if [ "$rc" -eq 0 ]
    then
        echo "PATCH CAN BE APPLIED TO HOST: $host"
        # add your code for patching
    else
        echo "PATCH CANNOT BE APPLIED TO HOST: $host"
        exit "$rc"
    fi

    echo ""
done