Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

nfs (54) Versions 2.2.7

Installs and configures NFS, and NFS exports

Policyfile
Berkshelf
Knife
cookbook 'nfs', '= 2.2.7', :supermarket
cookbook 'nfs', '= 2.2.7'
knife supermarket install nfs
knife supermarket download nfs
README
Dependencies
Changelog
Quality 100%

NFS

Build Status

Description

Installs and configures NFS client, or server components

Requirements

Should work on any RHEL, Debian, Ubuntu, SUSE, and FreeBSD distributions.

This cookbook depends on Sean O'Meara's line cookbook

Attributes

  • nfs['packages']

    • Case switch in attributes to choose NFS client packages dependent on platform.
  • nfs['service']

    • ['portmap'] - the portmap or rpcbind service depending on platform
    • ['lock'] - the statd or nfslock service depending on platform
    • ['server'] - the server component, nfs or nfs-kernel-server depending on platform
    • ['idmap'] - the NFSv4 idmap component
  • nfs['service_provider']

    • NOTE: This is a hack to set the service provider explicitly to Upstart on Ubuntu platforms.
    • ['portmap'] - provider for portmap service, chosen by platform
    • ['lock'] - provider for lock service, chosen by platform
    • ['server'] - provider for server service, chosen by platform
    • ['idmap'] - provider for NFSv4 idmap service
  • nfs['config']

    • client_templates - templates to iterate through on client systems, chosen by platform
    • server_template - Per-platform case switch in common nfs.erb template. This string should be set to where the main NFS server configuration file should be placed.
    • idmap_template - Path to idmapd.conf used in nfs::client4 and nfs::server4 recipes.
  • nfs['threads'] - Number of nfsd threads to run. Default 8 on Linux, 24 on FreeBSD. Set to 0, to disable.

  • nfs['port']

    • ['statd'] = Listen port for statd, default 32765
    • ['statd_out'] = Outgoing port for statd, default 32766
    • ['mountd'] = Listen port for mountd, default 32767
    • ['lockd'] = Listen port for lockd, default 32768
  • nfs['v2'], nfs['v3'], nfs['v4']

    • Set to yes or no to turn on/off NFS protocol level v2, or v3.
    • Defaults to nil, deferring to the default behavior provided by running kernel.
  • nfs['mountd_flags'] - BSD launch options for mountd.
    nfs['server_flags'] - BSD launch options for nfsd.

  • nfs['idmap']

    • Attributes specific to idmap template and service.
    • ['domain'] - Domain for idmap service, defaults to node['domain']
    • ['pipefs_directory'] - platform-specific location of Pipefs-Directory
    • ['user'] - effective user for idmap service, default nobody.
    • ['group'] - effective group for idmap service, default nogroup.

Usage

To install the NFS components for a client system, simply add nfs to the run_list.

name "base"
description "Role applied to all systems"
run_list [ "nfs" ]

Then in an nfs_server.rb role that is applied to NFS servers:

name "nfs_server"
description "Role applied to the system that should be an NFS server."
override_attributes(
  "nfs" => {
    "packages" => [ "portmap", "nfs-common", "nfs-kernel-server" ],
    "port" => {
      "statd" => 32765,
      "statd_out" => 32766,
      "mountd" => 32767,
      "lockd" => 32768
    }
  }
)
run_list [ "nfs::server" ]

nfs_export LWRP Usage

Applications or other cookbooks can use the nfs_export LWRP to add exports:

nfs_export "/exports" do
  network '10.0.0.0/8'
  writeable false 
  sync true
  options ['no_root_squash']
end

The default parameters for the nfs_export LWRP are as follows

  • directory

    • directory you wish to export
    • defaults to resource name
  • network

    • a CIDR, IP address, or wildcard (*)
    • requires an option
    • can be a string for a single address or an array of networks
  • writeable

    • ro/rw export option
    • defaults to false
  • sync

    • synchronous/asynchronous export option
    • defaults to true
  • anonuser

    • user mapping for anonymous users
    • the user's UID will be retrieved from /etc/passwd for the anonuid=x option
    • defaults to nil (no mapping)
  • anongroup

    • group mapping for anonymous users
    • the group's GID will be retrieved from /etc/group for the anongid=x option
    • defaults to nil (no mapping)
  • options

    • additional export options as an array, excluding the parameterized sync/async, ro/rw options, and anoymous mappings
    • defaults to root_squash

nfs::default recipe

The default recipe installs and configures the common components for an NFS client, at an effective protocol level of
NFSv3. The Chef resource logic for this is in the nfs::_common recipe, with platform-specific conditional defaults
set in the default attributes file.

nfs::client4 recipe

Includes the logic from nfs::_common, and also configures and installs the idmap service to provide an effective protocol
level of NFSv4. Effectively the same as running both nfs::_common and nfs::_idmap.

nfs::server recipe

The server recipe includes the common client components from nfs::_common. This also configures and installs the
platform-specific server services for an effective protocol level of NFSv3.

nfs::server4 recipe

This recipe includes the common client components from nfs::_common. It also configures and installs the
platform-specific server services for an effective protocol level of NFSv4. Effectively the same as running
nfs::_common and nfs::_idmap and nfs::server.

nfs::undo recipe

Does your freshly kickstarted/preseeded system come with NFS, when you didn't ask for NFS? This recipe inspired by the
annoyances cookbook, will run once to remove NFS from the system. Use a knife command to remove NFS components from your
system like so.

knife run_list add  nfs::undo

License and Author

Author: Eric G. Wolfe (eric.wolfe@gmail.com) endorse
Contributors: Riot Games, Sean OMeara

Copyright 2011-2014, Eric G. Wolfe
Copyright 2012, Riot Games
Copyright 2012, Sean OMeara

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

line >= 0.0.0
sysctl >= 0.0.0

Contingent cookbooks

arcgis-enterprise Applicable Versions
arcgis-repository Applicable Versions
chef-ha Applicable Versions
clonezillalive Applicable Versions
cloudstack_wrapper Applicable Versions
dry-run-lies Applicable Versions
hdp-cloud Applicable Versions
magentostack Applicable Versions
media Applicable Versions
opennebula_ng Applicable Versions

v2.2.7

  • @gsreynolds

    • Add explicit service provider attributes for Debian, including Debian 8.
  • @hrak

    • Use package portmap instead of rpcbind on Ubuntu <=13.04
    • Correct service name for Ubuntu <=13.04 = 'portmap', >=13.10 = 'rpcbind'

commit f0a62939a61a6bb4b6637562d22c0fe347be4035
Author: Hans Rakers h.rakers@global.leaseweb.com
Date: Wed Feb 17 18:22:24 2016 +0100

update tests for new Ubuntu service and package names

commit b35f0bdfba164ea3bb35919fc10f3cde280950a8
Author: Hans Rakers h.rakers@global.leaseweb.com
Date: Wed Feb 17 18:21:12 2016 +0100

use package portmap instead of rpcbind on Ubuntu <=13.04

commit 50bfef088e0cee7a016c828418e45dbe3940c137
Author: Hans Rakers h.rakers@global.leaseweb.com
Date: Wed Feb 17 17:50:25 2016 +0100

Correct service name for Ubuntu <=13.04 = 'portmap', >=13.10 = 'rpcbind'

commit 4335ed1122b5b765b333ba856800bb8937f7a03b
Author: Gavin Reynolds g.reynolds@src.gla.ac.uk
Date: Tue Feb 16 11:45:10 2016 +0000

Add explicit service provider attributes for Debian, including Debian 8

v2.2.6

  • @davidgiesberg - fixed an issue with chef-client 12.5 in #67

v2.2.5

  • @yoshiwaan - improved Amazon Linux platform support.
    • Also added tests, and example .kitchen.yml.aws file.

v2.2.4

  • @shortgun corrected an Amazon Linux regression introduced by #57
  • Cleaned out redundant BATS tests, in favor of Serverspec tests.
  • Cleaned up Serverspec tests introduced by #57 to better reflect expected behavior.

v2.2.3

  • @joerocklin added CentOS 7 support, and tests, in #57
  • @sdrycroft added whitespace padding to replacement pattern in #62

v2.2.2

  • Make service_provider edge cases an Ubuntu-specific hack.
    • More feedback may be needed on Debian platforms/versions
  • CentOS platforms seem to detect service_provider fine, without explicitly setting one.
  • Remove windows/solaris guard regression, because this should not be needed without overriding the service provider

v2.2.1

  • Partial revert of service_provider Ubuntu hacks.

v2.2.0

  • De-kludge service_provider hacks
  • Add pattern parameter to looped service resources

v2.1.0

  • @lmickh LWRP stairsteps anonids multiplicatively. #46
  • @vgirnet added SLES init script failsafe. closes #47
  • @StFS added EL7 service names. closes #39 #41 #49
  • @stevenolen remove installation of nfs-kernel-server for debian platform. closes #43
  • ChefSpec fixups
    • Runner deprecated.
    • Generic chefspec 0.6.1 platform has no service providers (i.e. sysvinit) in Chef.
    • FreeBSD mapping broken chef/chef#2383.

v2.0.0

  • @jessp01 added rquotad support, Issue #34
  • @jessp01 added NFS4 support, Issue #35
  • @dudyk Hash Rockets, Issue #36
  • @soul-rebel, Issue #37
  • @kjtanaka, notification timing, Issue #38
  • rework issue #35 to be cross-platform and backwards compatible
  • fix tests, verify behavior
  • Update documentation

Potentially Breaking Changes

Support for some versions of Ubuntu support unverified. Please help cookbook
maintainers by submitting fauxhai stub data
for your preferred platforms.

v1.0.0

  • Removed unused variables from provider
  • NFS server template refactored into singular template to take advantage of added features like nfs['v4'] and nfs['threads']
  • @eric-tucker added Amazon support
  • @mvollrath added Ubuntu 13.10 support
  • @JonathanSerafini added FreeBSD support
  • @gswallow added an nfs['threads'] attribute
  • @brint added array support for network LWRP parameter
  • Tests
    • @stuart12 added debian to kitchen.ci platforms
    • Chefspec unit test coverage
    • BATS integration tests
    • Rubocop linting

v0.5.0

  • @CloCkWeRX - LWRP multi-line fix
  • @walbenzi - toggle-able nfs protocol level 2, or 3

    • defer to default proto level, and default behavior according to installed kernel
    • Add attributes to README
  • @ranxxerox & @reoring - Debian wheezy support added

v0.4.2

Remove nfs::undo only upon conflict in run_list

v0.4.1

Community site version does not match cb on github.

v0.4.0

Add SLES 11 support.
Handle non-existent exports.
Re-order service/template.
Added attributes to LWRP for anonymous user and group mapping.
Removed deprecated exports documentation.
Add test-kitchen skeleton

v0.3.1

Correct LWRP behavior for empty exports file via @bryanwb

Corrected lint warnings:

FC043: Prefer new notification syntax: ./recipes/default.rb:40
FC043: Prefer new notification syntax: ./recipes/server.rb:35

v0.3.0

@someara exports LWRP refactor

  • Breaking changes
    • Deprecated ~nfs['exports']~ attribute
    • remove exports recipe hack
  • refactored provider to execute in new run_context
  • update notification timings on exports resources
  • add service status to recipes
  • dependency and integration with line editing cookbook

v0.2.8

Debian family attribute correction

Use portmap service when using the portmap package

v0.2.7

Documentation corrections
* correct node.nfs.port references
* correct run_list symtax

v0.2.6

Force float in platform_version conditional

v0.2.5

Ubutntu service names

  • Fix Ubuntu 11.10 edge-case reported by Andrea Campi
  • Update test cases

v0.2.4

Attribute typo for Debian

  • Correct typo in attributes
  • Add attribute testing for config templates
  • Add /etc/exports grep for better idempotency guard

v0.2.3

  • Fix service action typo in nfs::undo

v0.2.2

  • [annoyance] Add run once nfs::undo recipe to stop and remove all nfs components
  • Correct export duplication check in LWRP
  • Re-factor attributes, and introduce Ubuntu 12+ edge cases
  • Add testing artefacts for Travis CI integration

v0.2.0

  • Add nfs_export LWRP, thanks Michael Ivey from Riot Games for the contribution
  • Update README documentation, and add CHANGELOG

v0.1.0

  • Re-factor NFS cookbook
  • Add edge cases for RHEL6, thanks Bryan Berry for reporting and testing
  • Filter-branched into cookbook-nfs repo

v0.0.6

  • Add NFS export support
  • Update documentation
  • First community site release

v0.0.4

  • Initial version with RHEL/CentOS/Debian/Ubuntu support
  • Thanks to Glenn Pratt for testing on Debian family distros

Foodcritic Metric
            

2.2.7 passed this metric