Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ulhpc/puppet-nfs

Configure and manage NFS (client and/or server)
https://github.com/ulhpc/puppet-nfs

nfs nfs-client nfs-server nfs-service puppet

Last synced: 3 months ago
JSON representation

Configure and manage NFS (client and/or server)

Awesome Lists containing this project

README

        

-*- mode: markdown; mode: visual-line; -*-

# Nfs Puppet Module

[![Puppet Forge](http://img.shields.io/puppetforge/v/ULHPC/nfs.svg)](https://forge.puppetlabs.com/ULHPC/nfs)
[![License](http://img.shields.io/:license-GPL3.0-blue.svg)](LICENSE)
![Supported Platforms](http://img.shields.io/badge/platform-debian|centos-lightgrey.svg)
[![Documentation Status](https://readthedocs.org/projects/ulhpc-puppet-nfs/badge/?version=latest)](https://readthedocs.org/projects/ulhpc-puppet-nfs/?badge=latest)

Configure and manage NFS (client and/or server)

Copyright (c) 2015 S. Varrette, H. Cartiaux, V. Plugaru, S. Diehl aka. UL HPC Management Team

| [Project Page](https://github.com/ULHPC/puppet-nfs) | [Sources](https://github.com/ULHPC/puppet-nfs) | [Documentation](https://ulhpc-puppet-nfs.readthedocs.org/en/latest/) | [Issues](https://github.com/ULHPC/puppet-nfs/issues) |

## Synopsis

Configure and manage NFS (client and/or server).

This module implements the following elements:

* __Puppet classes__:
- `nfs`
- `nfs::client`
- `nfs::client::common`
- `nfs::client::common::debian`
- `nfs::client::common::redhat`
- `nfs::params`
- `nfs::server`
- `nfs::server::common`
- `nfs::server::common::debian`
- `nfs::server::common::redhat`

* __Puppet definitions__:
- `nfs::server::export`

All these components are configured through a set of variables you will find in
[`manifests/params.pp`](manifests/params.pp).

_Note_: the various operations that can be conducted from this repository are piloted from a [`Rakefile`](https://github.com/ruby/rake) and assumes you have a running [Ruby](https://www.ruby-lang.org/en/) installation.
See `docs/contributing.md` for more details on the steps you shall follow to have this `Rakefile` working properly.

## Dependencies

See [`metadata.json`](metadata.json). In particular, this module depends on

* [puppetlabs/stdlib](https://forge.puppetlabs.com/puppetlabs/stdlib)
* [puppetlabs/concat](https://forge.puppetlabs.com/puppetlabs/concat)
* [ULHPC/sysctl](https://forge.puppetlabs.com/ULHPC/sysctl)

## Overview and Usage

### Class `nfs`

This is the main class defined in this module.
It accepts the following parameters:

* `$ensure`: default to 'present', can be 'absent'

Use it as follows:

include ' nfs'

See also [`tests/init.pp`](tests/init.pp)

### Class `nfs::client`

See [`tests/client.pp`](tests/client.pp)
### Class `nfs::server`

See [`tests/server.pp`](tests/server.pp)

### Definition `nfs::server::export`

The definition `nfs::server::export` provides ...
This definition accepts the following parameters:

* `$ensure`: default to 'present', can be 'absent'
* `$content`: specify the contents of the directive as a string
* `$source`: copy a file as the content of the directive.

Example:

nfs::server::export { 'toto':
ensure => 'present',
}

See also [`tests/server/export.pp`](tests/server/export.pp)

## Librarian-Puppet / R10K Setup

You can of course configure the nfs module in your `Puppetfile` to make it available with [Librarian puppet](http://librarian-puppet.com/) or
[r10k](https://github.com/adrienthebo/r10k) by adding the following entry:

# Modules from the Puppet Forge
mod "ULHPC-nfs"

or, if you prefer to work on the git version:

mod "ULHPC-nfs",
:git => 'https://github.com/ULHPC/puppet-nfs',
:ref => 'production'

## Issues / Feature request

You can submit bug / issues / feature request using the [ULHPC-nfs Puppet Module Tracker](https://github.com/ULHPC/puppet-nfs/issues).

## Developments / Contributing to the code

If you want to contribute to the code, you shall be aware of the way this module is organized.
These elements are detailed on [`docs/contributing.md`](contributing/index.md).

You are more than welcome to contribute to its development by [sending a pull request](https://help.github.com/articles/using-pull-requests).

## Puppet modules tests within a Vagrant box

The best way to test this module in a non-intrusive way is to rely on [Vagrant](http://www.vagrantup.com/).
The `Vagrantfile` at the root of the repository pilot the provisioning various vagrant boxes available on [Vagrant cloud](https://atlas.hashicorp.com/boxes/search?utf8=%E2%9C%93&sort=&provider=virtualbox&q=svarrette) you can use to test this module.

See [`docs/vagrant.md`](vagrant.md) for more details.

## Online Documentation

[Read the Docs](https://readthedocs.org/) aka RTFD hosts documentation for the open source community and the [ULHPC-nfs](https://github.com/ULHPC/puppet-nfs) puppet module has its documentation (see the `docs/` directly) hosted on [readthedocs](http://ulhpc-puppet-nfs.rtfd.org).

See [`docs/rtfd.md`](rtfd.md) for more details.

## Licence

This project and the sources proposed within this repository are released under the terms of the [GPL-3.0](LICENCE) licence.

[![Licence](https://www.gnu.org/graphics/gplv3-88x31.png)](LICENSE)