I have posted articles and tutorials in the past on the BatchPatch feature known as the ‘Advanced multi-row queue sequence.‘ In fact there is a really thorough tutorial here that demonstrates how to integrate custom scripts into your job queues and multi-row queue sequences, which essentially enables the administrator to incorporate features/functionality into BatchPatch that might not exist already in a single-click menu item.
Today I’d like to discuss a bit more some thoughts on what an ‘Advanced multi-row queue sequence’ might look like in a different environment. For example, let’s say that you want to have one computer check for available updates and install them if there are any, but if there aren’t any, then you want the next server in the queue to do the same. Furthermore, if there *are* updates available for installation, you want to download and install them and reboot the computer, and then you want the computer to check again to see if after reboot any new updates became available. And again you want to then install any available updates, but if there are none available you want the next host in the advanced multi-row queue sequence to begin working. Additionally, if updates are available and installed and the host is then rebooted, you want to perform a verification check on that server to make sure that it is functioning properly before moving on to the next host in the sequence. There are surely multiple ways to accomplish something like this, but below I’m going to provide one possible way to accomplish this.
First, if you are not familiar with ‘Advanced multi-row queue sequence’ execution, please review the following links, which all demonstrate how to use it.
Advanced Multi Row Queue Sequence Video Tutorial
Virtual Machine Guest Host Update and Reboot Sequence Automation
Advanced Multi Row Queue Sequence Contingent Operations with Custom Scripts
Now, what if we apply the following job queue to each of the hosts in our advanced multi-row queue sequence? This allows us to have each host do multiple cycles of ‘download/install/reboot’ along with running a custom script to verify that our target is functioning in the way that we want … i.e. in addition to being online, which BatchPatch checks for, the custom script can check to see that the server is providing whatever service it provides. If the verification script finds that it is providing the service, the script returns 0. If the verification script finds that it is not providing the service, the script returns a non-0 integer. This enables us to use the two following special job queue items:
Abort advanced multi-row sequence if previous action fails/errors
Terminate queue if previous action fails/errors
So, if we apply the queue below to three hosts in the BatchPatch grid, for example. And if include those three hosts in the advanced multi-row queue sequence, such that each host represents one sequence position, which means that each host will execute the complete job queue below in sequence, so that no host goes offline at the same time, and so that if one host fails the verification script, then no other hosts will be acted upon in any way, then we can accomplish a pretty solid automation routine.
Check for available updates Terminate queue if previous 'Check for available updates' finds 0 updates Download and install updates + reboot if required Wait 10 minutes Wait for host to be detected online *Run a custom remote verification script/deployment that returns 0 if successful/OK, non-0 if unsuccessful/notOK Abort advanced multi-row sequence if previous action fails/errors Terminate queue if previous action fails/errors Check for available updates Terminate queue if previous 'Check for available updates' finds 0 updates Download and install updates + reboot if required Wait 10 minutes Wait for host to be detected online *Run a custom remote verification script/deployment that returns 0 if successful/OK, non-0 if unsuccessful/notOK Abort advanced multi-row sequence if previous action fails/errors Terminate queue if previous action fails/errors Check for available updates Terminate queue if previous 'Check for available updates' finds 0 updates Download and install updates + reboot if required Wait 10 minutes Wait for host to be detected online *Run a custom remote verification script/deployment that returns 0 if successful/OK, non-0 if unsuccessful/notOK Abort advanced multi-row sequence if previous action fails/errors Terminate queue if previous action fails/errors |