The SystemImager tool is a widely used open source tool that allows flexible automated installation or provisioning of compute hosts within a cluster. Interfacing Moab with SystemImager can be done in one of two ways: (1) using triggers and (2) using a native resource manager interface.
Trigger Based Provisioning Interface
When a job or reservation becomes active, Moab can custom tailor its environment including changing the operating system of the allocated nodes through the use of triggers. In the case of a job trigger, You can use something like the following:
RSVPROFILE[rhel3] TRIGGER=etype=start,atype=exec,action='/usr/local/tools/nodeinstall.si.pl $REQOS $HOSTLIST' RSVPROFILE[rhel3] TRIGGER=etype=end,atype=exec,action='/usr/local/tools/nodeinstall.si.pl $DEFOS $HOSTLIST' RSVPROFILE[rhel3] TRIGGER=etype=cancel,atype=exec,action='/usr/local/tools/nodeinstall.si.pl $DEFOS $HOSTLIST' ...
In the preceding example, any reservation that uses the rhel3 profile will reinstall all nodes to use the rhel3 operating system for the duration of the reservation. The second and third trigger makes certain that when the reservation ends or if it is canceled, the nodes are restored to their default operating system.
Resource Manager Based Provisioning Interface
With a resource manager based provisioning interface, Moab uses the provisioning manager to create the nodes needed by various jobs. In this model, the provisioning manager can be set up, users can submit jobs requiring any available operating system, and Moab can dynamically reprovision compute nodes to meet current workload needs.
RMCFG[torque] TYPE=PBS RMCFG[si] TYPE=native RTYPE=provision RMCFG[si] CLUSTERQUERYURL=exec://$TOOLSDIR/clusterquery.si.pl RMCFG[si] SYSTEMQUERYURL=exec://$TOOLSDIR/systemquery.si.pl RMCFG[si] SYSTEMMODIFYURL=exec://$TOOLSDIR/systemmodify.si.pl ...
With this configuration, Moab can automatically load-balance resources to meet the needs of submitted jobs. Correct operation of the interface's querying capabilities can be verified by issuing mdiag -R and mdiag -n to look at resource manager and node configuration respectively.
To verify that Moab can correctly drive SystemImager to install a node, use the mnodectl -m command as demonstrated in the following example: