puppet-module-clustershell

Table of Contents

  1. Description

  2. Setup - The basics of getting started with clustershell

  3. Usage - Configuration options and additional functionality

  4. Reference - Module reference

Description

This module will manage ClusterShell

Setup

What clustershell affects

This module will install the clustershell packages and manage the clustershell configs.

Setup Requirements

For systems with yum package manager there is a dependency on puppetlabs/yumrepo_core.

If genders support is enabled there is a soft dependency on treydock/genders

Usage

Install clustershell and define groups in local.cfg:

class { '::clustershell':
  groupmembers => {
    compute => {
      group  => 'compute',
      member => 'node[00-99]',
    }
    login => {
      group  => 'login',
      member => 'login[01-02]',
    }
  },
}

The equivalent in hiera would be:

clustershell::groupmembers:
  compute:
    group: 'compute'
    member: 'node[00-99]'
  login:
    group: 'login'
    member: 'login[01-02]'

Enable SLURM groups and make them the default:

class { '::clustershell':
  default_group_source => 'slurm',
  include_slurm_groups => true,
}

Enable genders groups and make them the default:

class { '::clustershell':
  default_group_source   => 'genders',
  include_genders_groups => true,
}

Define groups via YAML group files:

class { '::clustershell':
  group_yaml => {
    'cluster' => {
      'data'  => {
        'local' => {
          'compute' => 'node[00-99]',
          'login'   => 'login[01-02]',
        }
      }
    }
  }
}

Defining group YAML files via defined type:

::clustershell::group_yaml { 'cluster':
  data => {
    'local' => {
      'compute' => 'node[00-99]',
      'login'   => 'login[01-02]',
    }
  }
}

Can also supply custom templates to clustershell::group_yaml

::clustershell::group_yaml { 'cluster':
  content => template('profile/clustershell/cluster.yaml.erb'),
}

Example of defining custom group source:

::clustershell::group_source { 'batch':
  ensure  => 'present',
  section => 'job,moabrsv',
  map     => 'clustershell-batch-mapper.py $SOURCE map $GROUP',
  list    => 'clustershell-batch-mapper.py $SOURCE list',
}

Reference

treydock.github.io/puppet-module-clustershell/