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


swap (19) Versions 2.2.0

Manage swap and swapfiles with Chef

cookbook 'swap', '= 2.2.0'
cookbook 'swap', '= 2.2.0', :supermarket
knife cookbook site install swap
knife cookbook site download swap
Quality 100%

Swap Cookbook

Build Status Cookbook Version

This cookbook provides resource for easily creating and managing swap files.



  • Debian / Ubuntu derivatives
  • RHEL and derivatives
  • Fedora
  • openSUSE / SUSE Linux Enterprises


  • Chef 12.7+


  • none


Add a new swap:

swap_file '/mnt/swap' do
  size      1024    # MBs

Or remove an existing one:

swap_file '/mnt/swap' do
  action    :remove

LWRP Attributes

Attribute Description Example Default
path The path to put the swap file on the system /mnt/swap
size The size (in MBs) for the swap file 2048
persist Persist the swapon true false
timeout Timeout for dd/fallocate 600 600


If you're using berkshelf, add swap to your Berksfile:

cookbook 'swap'

Otherwise, install the cookbook from the community site:

knife cookbook site install swap

Have any other cookbooks depend on this cookbook by adding it to the metadata.rb:

depends 'swap'

Now you can use the LWRP in your cookbook!

ChefSpec matchers


Assert that the Chef run creates swap_file.

expect(chef_run).to create_swap_file(path).with(
  :size => 1024


Assert that the Chef run removes swap_file.

expect(chef_run).to remove_swap_file(path)


  1. Fork the project
  2. Create a feature branch corresponding to you change
  3. Commit and test thoroughly
  4. Create a Pull Request on github
  • ensure you add a detailed description of your changes

License & Authors

Copyright 2012-2016, Seth Vargo

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

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

swap Cookbook CHANGELOG

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

v2.2.0 (2018-03-14)

  • General tidy up of resources
  • Migrate helpers into the helpers file
  • Cleanup test suites

v2.1.0 (2017-08-17)

  • Added sysctl and swappiness to create call. This adds a dependency on systctl
  • Require Chef 12.7 or later since 12.5/12.6 had issues with custom resources
  • Add integration testing in Travis with kitchen-dokken
  • Add testing with Delivery local mode
  • Update the dokken config to use the dokken images
  • Fix the license metadata to be a SPDX compliant license string
  • Convert the integration tests from bats to InSpec
  • Add a very basic ChefSpec test

v2.0.0 (2017-02-23)

  • Now supports a timeout property for create
  • Converted to a custom resource to resolve the failures in the 1.0 release and wired up proper converge messaging. This requires Chef 12.5 or later

v1.0.0 (2017-02-22)

  • This cookbook has been transferred to the Sous Chefs. See
  • Require Chef 12.1 or later


  • Use provides if available to avoid deprecation warnings on Chef 12.4+
  • Add -P to df to account for long device names
  • Check that swap exist before removing it
  • Add a chefignore file to limit the files uploaded to the Chef server
  • Add new issues_url, source_url and chef_version metadata
  • Update testing with a Rakefile, Cookstyle, and ChefDK testing in Travis
  • Update the requirements section in the Readme
  • Add supported platforms to the metadata


  • Missing missing method name get_fallocate_command


  • Updated to latest test harness


  • Remove size as a required attribute, since it doesn't make sense to require it during the "remove" action


  • CHANGELOG is deprecated - see releases


  • Integrate test-kitchen
  • Integrate foodcritic
  • Integrate chefspec
  • Integrate strainer
  • Integrate knife testing
  • Add travis support
  • Add persist key to write to fstab


  • Use fallocate if available - @andrewgross
  • Small code restructure


  • Fix error in documentation (it's MB, not GB) (@dougal)


  • Initial release

Collaborator Number Metric

2.2.0 passed this metric

Contributing File Metric

2.2.0 passed this metric

Foodcritic Metric

2.2.0 passed this metric

License Metric

2.2.0 passed this metric

No Binaries Metric

2.2.0 passed this metric

Publish Metric

2.2.0 passed this metric

Supported Platforms Metric

2.2.0 passed this metric

Testing File Metric

2.2.0 passed this metric

Version Tag Metric

2.2.0 passed this metric