Skip to content

onpuppet/puppet-autofs

Repository files navigation

Build Status

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with autofs
  4. Usage - Configuration options and additional functionality

Overview

Installs and configures autofs which provides automount functionality.

Module Description

Installs and configures autofs which provides automount functionality.

Setup

What autofs affects

  • Package autofs, and corresponding configs will be managed by Puppet - overwriting any local files

Setup Requirements

Requires puppetlabs-stdlib and puppetlabs-concat modules

Beginning with autofs

Basic installation:

class { 'autofs': }

Usage

Example usage for automounting home folders:

class { 'autofs':
  mounts => {
    'home' => {
      remote     => 'nfs.com:/export/home',
      mountpoint => '/home',
      options    => '-hard,rw',
    },
    'net'  => {
      remote     => 'nfs:/folder',
      mountpoint => '/remote/folder',
      options    => '-soft,ro',
    },
    'misc' => {
      remote     => ':/dev/sdb1',
      mountpoint => '/misc/usb',
      options    => '-fstype=auto,rw',
    },
  }
}

Using the autofs::mount directly:

autofs::mount { 'home':
  remote     => 'nfs.com:/export/home',
  mountpoint => '/home',
  options    => '-hard,rw',
}

Supplying a custom automount file:

class { 'autofs':
  mount_files => {
    'home' => {
      mountpoint  => '/home',
      file_source => 'puppet:///modules/mymodule/auto.home',
    },
    'net'  => {
      mountpoint  => '/remote',
      file_source => 'puppet:///modules/mymodule/auto.net',
    }
  }
}

Using autofs::mountfile directly

autofs::mountfile { 'homefile':
  mountpoint  => '/home', 
  file_source => 'puppet:///modules/mymodule/auto.home',
}

To set e.g. --timeout option in auto.master, you need to manually configure the auto.master entry using the mount_entries param like so:

class { 'autofs':
  mount_entries => {
    '/etc/auto._misc' => { # Resource name match generated name in Mount['misc']
      mountpoint => '/misc',
      mountfile  => '/etc/auto._misc', # Matched to auto generated name in Mount['misc']
      options    => '--timeout=300',
    }
  },
  mounts => {
    'misc'      => {
      remote     => 'nfs:/export/misc/stuff',
      mountpoint => '/misc/stuff',
      options    => '--timeout=300',
    }
  }
}

To set the filename of the generated mapfile, set the $mapname parameter. This will set the filename to /etc/auto.${mapname}:

class { 'autofs':
  mount_entries => {
    '/etc/auto.glusterfs' => { # Matched to mapname for Mount['glusterfs']
      mountpoint => '/misc',
      mountfile  => '/etc/auto.glusterfs', # Matched to mapname for Mount['glusterfs']
      options    => '--timeout=300',
    }
  },
  mounts => {
    'glusterfs' => {
      mapname    => 'glusterfs',
      remote     => 'glusters:/gv0',
      mountpoint => '/mnt/gv0',
      options    => '-fstype=glusterfs',
    }
  }
}

Using hiera

If you're using hiera:

autofs::mounts:
  'misc':
    remote: 'nfs:/export/misc/stuff'
    mountpoint: '/misc/stuff'
    options: '-hard,rw'
autofs::mount_entries:
    '/etc/auto._misc':
      mountpoint: '/misc'
      mountfile: '/etc/auto._misc'
      options: '--timeout=300'