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

zfs_linux (7) Versions 2.1.1

Installs/Configures zfs on linux

Policyfile
Berkshelf
Knife
cookbook 'zfs_linux', '= 2.1.1', :supermarket
cookbook 'zfs_linux', '= 2.1.1'
knife supermarket install zfs_linux
knife supermarket download zfs_linux
README
Dependencies
Changelog
Quality 0%

zfs_linux Cookbook

Gitter

Installs & configures zfs on Ubuntu.

Requirements

Ubuntu 12.04+

Usage

zfs_linux::default

Just include zfs_linux in your node's run_list:

{
  "name":"my_node",
  "run_list": [
    "recipe[zfs_linux]"
  ]
}

zfs_linux::auto-snapshot

Installs the zfs-auto-snapshot package, which automatically sets up rotating snapshots (hourly snapshots kept for a day, daily snapshots kept for a month, etc).

zfs_linux::auto-scrub

Uses cron.d (via the cron cookbook) to setup cron jobs on Sunday morning for each zpool. If greater than 4 zpools are present, runs the checks once a month on the first Sunday.

zfs_linux::source

This recipe was developed to allow the deployment of ZoL from a specific commit. Apply it to your node to pull down the ZFS revision from git (specified in your node's attributes).

WARNING: On Debian-family systems, the current build method will disable automatic updates for your kernel because the ZoL packages will be built for the kernel that is running at the time of compilation. Do not apply this without a process in place for monitoring security updates and applying them manually in the following manner:
1. Update your system kernel packages
2. Disable the auto-start of any services that depend on your ZoL-mounted volumes
3. Reboot into the new kernel
4. Delete the zfs & spl directories in /var/chef/cache/
5. Perform a chef-client run
6. Enable auto-start again for your node's services
7. Reboot

Resources/Providers

zfs_linux_snapshot

Actions

  • :create: Creates a snapshot of the dataset
  • :prune: Deletes a datasets snapshots down to a specified number of snapshots
  • :purge: Deletes all snapshots for a dataset

Attribute Parameters

  • dataset: Name of the zpool/fileset. Defaults to the resource name.
  • prefix: String to prefix the snapshot name. Defaults to zfs-chef-snap. When pruning/purging snapshots, used to filter the list of snapshots to be deleted (set to nil to disable the search filter).
  • snaps_to_retain: The number of snapshots to retain (only applies to the :prune action). Defaults to 31
  • append_timestamp: Boolean to determine whether a timestamp (in the form of -YY-MM-DD-HHmm) is appended to the snapshot prefix. Defaults to true

Examples

# Create a snapshot with a specific name
zfs_linux_snapshot 'tank/mydataset' do
  prefix 'myweeklysnapshot'
  append_timestamp false
end

# Delete all snapshots that match 'weekly'
zfs_linux_snapshot 'tank/mydataset' do
  prefix 'weekly'
  action :purge
end

# Remove all but the last 6 monthly snapshots
zfs_linux_snapshot 'tank/mydataset' do
  prefix 'zfs-auto-snap_monthly'
  snaps_to_retain 6
  action :prune
end

Contributing

  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request using Github

License and Authors

Copyright 2015, Biola University

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

apt >= 0.0.0
cron >= 0.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

zfs_linux Cookbook CHANGELOG

This file is used to list changes made in each version of the zfs_linux cookbook.

v2.1.1 (2015-03-18)

  • Fix auto-scrub cron distribution for systems w/ 6-12 zpools

v2.1.0 (2015-03-02)

  • Add udev rule for managing ZFS device permissions.
    • New ['zol']['dev_group'] and ['zol']['dev_perms'] attributes should optionally allow basic ZoL management by non-root users.

v2.0.0 (2014-11-14)

  • Remove attribute driven snapshot-pruning recipe; replaced with zfs_linux_snapshot resource.
    • Previous deployments of the snapshot-pruning recipe will need to manually remove stale /etc/cron.daily/zfs-auto-prune... files.
  • Dropped RHEL support for now

Foodcritic Metric
            

2.1.1 failed this metric

FC002: Avoid string interpolation where not required: /tmp/cook/c2994cd0eb4ba1f3d14ccd71/zfs_linux/recipes/source.rb:108
FC031: Cookbook without metadata file: /tmp/cook/c2994cd0eb4ba1f3d14ccd71/zfs_linux/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/c2994cd0eb4ba1f3d14ccd71/zfs_linux/metadata.rb:1
FC048: Prefer Mixlib::ShellOut: /tmp/cook/c2994cd0eb4ba1f3d14ccd71/zfs_linux/recipes/auto-scrub.rb:23
FC048: Prefer Mixlib::ShellOut: /tmp/cook/c2994cd0eb4ba1f3d14ccd71/zfs_linux/recipes/auto-scrub.rb:26