(Click to open topic with navigation)
The Moab identity manager interface can be used to coordinate global and local information regarding users, groups, accounts, and classes associated with compute resources. The identity manager interface may also be used to allow Moab to automatically and dynamically create and modify user accounts and credential attributes according to current workload needs.
Only one identity manager can be configured at a time.
Moab allows sites extensive flexibility when it comes to defining credential access, attributes, and relationships. In most cases, use of the USERCFG, GROUPCFG, ACCOUNTCFG, CLASSCFG, and QOSCFG parameters is adequate to specify the needed configuration. However, in certain cases such as the following, this approach may not be ideal or even adequate:
Moab addresses these and similar issues through the use of an identity manager. An identity manager is configured with the IDCFG parameter and allows Moab to exchange information with an external identity management service. As with Moab resource manager interfaces, this service can be a full commercial package designed for this purpose, or something far simpler such as a web service, text file, or database.
Configuring an identity manager in basic read-only mode can be accomplished by simply setting the SERVER attribute. If Moab is to interact with the identity manager in read/write mode, some additional configuration may be required.
REFRESHPERIOD | |
---|---|
Format | minute, hour, day, or infinity (default is infinity). |
Details | If specified, Moab refreshes identity manager information once every specified iteration. If infinity is specified, the information is updated only at Moab start up. |
Example |
IDCFG[test01] REFRESHPERIOD=hour Moab queries the identity manager every hour. |
One common use for an identity manager is to import fairness data from a global external information service. As an example, assume a site needed to coordinate Moab group level fairshare targets with an allocation database that constrains total allocations available to any given group. To enable this, a configuration like the following might be used:
IDCFG[alloc] SERVER=exec://$TOOLSDIR/idquery.pl ...
The tools/idquery.pl script could be set up to query a local database and report its results to Moab. Each iteration, Moab will then import this information, adjust its internal configuration, and immediately respect the new fairness policies.
When an identity manager outputs credential information either through an exec or file based interface, the data should be organized in the following format:
<CREDTYPE>:<CREDID> <ATTR>=<VALUE>where
To clear a comment, set its value to ""; for example: comment="".
Example 18-3:
The following output may be generated by an exec based identity manager:
group:financial fstarget=16.3 alist=project2 group:marketing fstarget=2.5 group:engineering fstarget=36.7 group:dm fstarget=42.5 user:jason adminlevel=3 account:sales maxnode=128 maxjob=8,16
The following example limits user bob to 8 matlab generic resources.
user:bob MAXGRES[matlab]=8
To specify unlimited use of generic resources, set the value to -1.
When local credential configuration (as specified via moab.cfg) conflicts with identity manager configuration, the identity manager value takes precedence and the local values are overwritten.
By default, Moab only loads identity manager information once when it is first started up. If the identity manager data is dynamic, then you may want Moab to periodically update its information. To do this, set the REFRESHPERIOD attribute of the IDCFG parameter. Legal values are documented in the following table:
Value | Description |
---|---|
minute | Update identity information once per minute |
hour | Update identity information once per hour |
day | Update identity information once per day |
infinity | Update identity information only at start-up (default) |
Example 18-4:
IDCFG[hq] SERVER=exec://$TOOLSDIR/updatepolicy.sh REFRESHPERIOD=hour
Job credential feasibility is evaluated at job submission and start time.
Related topics