I recently developed the Puppet module Asher256/puppet-lizardfs that can help you configure LizardFS, a highly-available distributed file system (DFS).

The Puppet module Asher256/puppet-lizardfs is an open source project. Community contributions are essential for keeping it great. I encourage you to contribute to the project. Send me your pull requests on Github! Currently, puppet-lizardfs supports the operating systems Debian/Ubuntu and RedHat/CentOS.

Puppet-Lizardfs example:

# The IP address of the LizardFS Master
host { 'mfsmaster':
  ip => 'x.x.x.x',

# Install and configure LizardFS Master (metadata)
class {'lizardfs::master':
  ensure             => 'present',
  first_personality  => 'MASTER',
  exports            => ['*    /    rw'],

# Install the client (useful to mount a LizardFS mount point)
class {'lizardfs::client':

# Install and configure the chunkserver (will be automatically connected 
# to the master thanks to the /etc/hosts entry 'mfsmaster')
class {'lizardfs::chunkserver':
  ensure => present,

lizardfs::mount {'/mnt/lizardfs/':
  lizardfs_subfolder => '/',
  lizardfs_master    => 'mfsmaster',   # the IP or host of the LizardFS Master
  create_mountpoint  => true,

The Puppet module puppet-lizardfs will help you to you configure several LizardFS servers efficiently. The source code above will:

  1. Configure a LizardFS Master (where the metadata will be stored).
  2. Configure a LizardFS Chunkserver (where the actual data will be stored).
  3. Mount LizardFS in ‘/mnt/lizardfs’.

You can also use the module puppet-lizardfs to realize more complicated scenarios (e.g. several chunk-servers, 1 master and several shadows/slaves, high-availability and automatic fail-over of the master/shadows, the configuration of metadata servers, etc.).

How to learn more about puppet-lizardfs?

I encourage you to read the headers of the puppet-lizardfs manifests where all options are documented:

External links related to puppet-lizardfs