Forge Home


Manage BeeGFS parallel filesystem installations


337 latest version

5.0 quality score

Version information

  • 0.7.1 (latest)
  • 0.7.0
  • 0.6.0
  • 0.5.0
  • 0.4.1
  • 0.4.0
  • 0.3.2
  • 0.3.1
  • 0.3.0
  • 0.2.0
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.1.0
released May 18th 2022
This version is compatible with:
  • Puppet Enterprise 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.4.x
  • Puppet >= 4.9.0 < 8.0.0
  • , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'deric-beegfs', '0.7.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add deric-beegfs
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install deric-beegfs --version 0.7.1

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



deric/beegfs — version 0.7.1 May 18th 2022


Puppet Forge Build Status Puppet Forge Downloads

Upgrade from deric-beegfs version 0.4.x to 0.5.x

  • beegfs::storage_directory expects an Array instead of just String
  • parameter beegfs::major_version renamed to beegfs::release
  • beegfs::client::client_udp renamed to beegfs::client::client_udp_port


First of all choose which release to use, by defining:

beegfs::release: '6'

valid values are:

  • '2015.03'
  • '6'
  • '7'
  • '7.1'

You'll need one mgmtd server:

class { 'beegfs::mgmtd': }

in order to accept new storage and meta servers you have to (at least temporarily) enable allow_new_servers and allow_new_targets.

And probably many storage and meta servers:

class { 'beegfs::meta':
  mgmtd_host =>,
class { 'beegfs::storage':
  mgmtd_host =>,

It's easier to define shared settings for all servers at one place (Hiera, e.g. default.yaml):

beegfs::mgmtd_host: ''

so that you don't have to specify mgmtd_host for each component.

defining a mount

beegfs::mount{ 'mnt-share':
  cfg => '/etc/beegfs/beegfs-client.conf',
  mnt   => '/mnt/share',
  user  => 'beegfs',
  group => 'beegfs',

Interfaces and networks

For meta and storage nodes you can specify interfaces for communication. The passed argument must be an array.

class { 'beegfs::meta':
  mgmtd_host =>,
  interfaces => ['eth0', 'ib0'],
class { 'beegfs::storage':
  mgmtd_host =>,
  interfaces => ['eth0', 'ib0']

In some cases, interfaces can have multiple ips, and only a subset of them should be used. In this case, the list of allowed subnets can be passed as the networks parameter. It should be an array if specified.

class { 'beegfs::meta':
  mgmtd_host =>,
  interfaces => ['eth0', 'ib0'],
  networks => [''],



If beegfs::allow_first_run_init is true you may skip this step.

beegfs-setup-mgmtd -p /mnt/myraid1/beegfs-mgmtd


If beegfs::allow_first_run_init is true you may skip this step.

Example 1

Initialize metadata storage directory of first metadata server and set "storage01" as management daemon host in config file:

beegfs-setup-meta -p /mnt/myraid1/beegfs-meta -s 1 -m storage01

Hiera support

All configuration could be specified in Hiera config files. Some settings are shared between all components, like:

beegfs::mgmtd_host: ''
beegfs::mgmtd::allow_new_servers: true
beegfs::mgmtd::allow_new_targets: true
beegfs::release: 6

version could be also defined exactly, like:

beegfs::version: '2015.03.r9.debian7'

for module specific setting use correct namespace, e.g.:

  - 'eth0'

Recent releases of Linux Kernel might include "deterministic interfaces naming" (like enp0s31f6) that requires specifying which interface should be BeeGFS instances using:

  - "%{facts.networking.primary}"
  - "%{facts.networking.primary}"
  - "%{facts.networking.primary}"


  • Ruby 2.0 or newer
  • at least Puppet 4.9


Apache License, Version 2.0

Acceptance test

Run specific image using:

BEAKER_set=debian9-5.5 rake acceptance

debug mode:

BEAKER_debug=true rake acceptance

preserve Docker container after finising test:

$ BEAKER_destroy=no rake acceptance
$ docker exec -it 98aa06308c67 bash
$ /opt/puppetlabs/bin/puppet apply /tmp/apply_manifest.pp.OveoVG


Update rubocop config with given target version:

 mry --target=0.70.0 .rubocop.yml