Provided by: clustershell_1.8.4-1_all bug

NAME

       groups.conf - Configuration file for ClusterShell node groups

DESCRIPTION

       The  ClusterShell  library  obtains  its  node  groups  configuration  from  the following sources in the
       following order:

          1. user configuration file ($XDG_CONFIG_HOME/clustershell/groups.conf)

          2. local pip user installation ($HOME/.local/etc/clustershell/groups.conf)

          3. system-wide configuration file (/etc/clustershell/groups.conf)

       If no groups.conf is found, group support will be disabled.

       Additional configuration files are also read from the directories set by the confdir option, if  present.
       See the confdir option below for further details.

       Configuration  files have a format in the style of RFC 822 potentially composed of several sections which
       may be present in any order. There are two types of sections: Main and Group_source:

       Main   Global configuration options. There should be only one Main section.

       Group_source
              The Group_source section(s) define the configuration for each node group  source  (or  namespace).
              This configuration consists in external commands definition (map, all, list and reverse).

       Only Group_source section(s) are allowed in additional configuration files.

   [Main] OPTIONS
       Configuration parameters of the Main section are described below.

       default
              Specify  the  default group source (group namespace) used by the NodeSet parser when the user does
              not explicitly specify the group source (eg. "@io").

       confdir
              Optional list of directories where the ClusterShell library should  look  for  .conf  files  which
              define  group  sources to use. Each file in these directories with the .conf suffix should contain
              one or more Group_source sections as documented in [Group_source] options  below.  These  will  be
              merged with the group sources defined in /etc/clustershell/groups.conf to form the complete set of
              group  sources that ClusterShell will use. Duplicate Group_source sections are not allowed.  Note:
              .conf files that are not readable by the current user are ignored (except the one that defines the
              default group source). The variable $CFGDIR is replaced  by  the  path  of  the  highest  priority
              configuration directory found (where groups.conf resides).  The default confdir value enables both
              system-wide  and  any  installed user configuration (thanks to $CFGDIR). Duplicate directory paths
              are ignored.

       autodir
              Optional list of directories where the ClusterShell library  should  look  for  .yaml  files  that
              define  in-file  group  dictionaries.  No need to call external commands for these files, they are
              parsed by the ClusterShell library itself.  Multiple group source definitions in the same file  is
              supported.  The  variable  $CFGDIR  is  replaced by the path of the highest priority configuration
              directory found (where groups.conf resides). The default confdir value  enables  both  system-wide
              and any installed user configuration (thanks to $CFGDIR). Duplicate directory paths are ignored.

   [Group_source] OPTIONS
       Configuration parameters of each group source section are described below.

       map    Specify  the  external shell command used to resolve a group name into a nodeset, list of nodes or
              list of nodeset (separated by space characters or by carriage returns).  The  variable  $GROUP  is
              replaced before executing the command.

       all    Optional  external shell command that should return a nodeset, list of nodes or list of nodeset of
              all nodes for this group source. If not specified, the library will try to resolve  all  nodes  by
              using the list external command in the same group source followed by map for each group.

       list   Optional  external  shell  command that should return the list of all groups for this group source
              (separated by space characters or by carriage returns).

       reverse
              Optional external shell command used to find the group(s) of a single node. The variable $NODE  is
              previously  replaced. If this upcall is not specified, the reverse operation is computed in memory
              by the library from the list and map external calls. Also, if the number of nodes  to  reverse  is
              greater   than   the  number  of  available  groups,  the  reverse  external  command  is  avoided
              automatically.

       cache_time
              Number of seconds each upcall result is kept in cache, in memory only.  Default is  3600  seconds.
              This is useful only for daemons using nodegroups.

       When  the  library  executes  a  group  source  external  shell command, the current working directory is
       previously set to the corresponding confdir. This allows the use of relative paths for third party  files
       in the command.

       In  addition to context-dependent $GROUP and $NODE variables described above, the two following variables
       are always available and also replaced before executing shell commands:

       • $CFGDIR is replaced by groups.conf highest priority base directory path

       • $SOURCE is replaced by current source name

       Each external command might return a non-zero return code when the operation is not doable.  But  if  the
       call return zero, for instance, for a non-existing group, the user will not receive any error when trying
       to resolve such unknown group.  The desired behaviour is up to the system administrator.

RESOURCE USAGE

       All  external  command  results  are  cached in memory to avoid multiple calls. Each result is kept for a
       limited amount of time. See cache_time option to tune this behaviour.

EXAMPLES

       Simple configuration file for local groups and slurm partitions binding.

   groups.conf
       [Main]
       default: local
       confdir: /etc/clustershell/groups.conf.d $CFGDIR/groups.conf.d
       autodir: /etc/clustershell/groups.d $CFGDIR/groups.d

       [local]
       map: sed -n 's/^$GROUP:(.*)/1/p' /etc/clustershell/groups
       list: sed -n 's/^\([0-9A-Za-z_-]*\):.*/\1/p' /etc/clustershell/groups

       [slurm]
       map: sinfo -h -o "%N" -p $GROUP
       all: sinfo -h -o "%N"
       list: sinfo -h -o "%P"
       reverse: sinfo -h -N -o "%P" -n $NODE

FILES

       /etc/clustershell/groups.conf
              System-wide node groups configuration file.

       /etc/clustershell/groups.conf.d/
              Recommended directory for additional configuration files.

       /etc/clustershell/groups.d/
              Recommended directory for autodir, where native group definition files (.yaml files) are found.

       $XDG_CONFIG_HOME/clustershell/groups.conf
              Main   user   groups.conf   configuration   file.   If   $XDG_CONFIG_HOME    is    not    defined,
              $HOME/.config/clustershell/groups.conf is used instead.

       $HOME/.local/etc/clustershell/groups.conf
              Local groups.conf user configuration file (default installation for pip --user)

SEE ALSO

       clubak(1), cluset(1), clush(1), nodeset(1)

       http://clustershell.readthedocs.org/

AUTHOR

       Stephane Thiell, <sthiell@stanford.edu>

COPYRIGHT

       GNU Lesser General Public License version 2.1 or later (LGPLv2.1+)

1.8.4                                              2021-11-03                                     GROUPS.CONF(5)