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

The libartifact cookbook has been deprecated

The libartifact cookbook has been deprecated and is no longer being maintained by its authors. Use of the libartifact cookbook is no longer recommended. You may find that the poise-archive cookbook is a suitable alternative.


libartifact (9) Versions 1.1.0

Library cookbook for managing release artifacts.

cookbook 'libartifact', '= 1.1.0'
cookbook 'libartifact', '= 1.1.0', :supermarket
knife supermarket install libartifact
knife supermarket download libartifact
Quality 0%


Library cookbook which provides a resource for managing release artifacts.

This cookbook takes an opinionated approach to managing release artifacts on the system. It utilizes the libarchive cookbook to extract remote files to a release directory. After this is done it creates (or updates) a current symlink so that scripts can always reference the most recent version of the packaged software.

An example of the layout on the file system would go as follows: sh /srv/twbs % ll total 12K 4.0K drwxr-xr-x. 2 jbellone jbellone 4.0K May 20 14:38 3.3.1/ 4.0K drwxr-xr-x. 2 root root 4.0K May 20 14:38 3.3.2/ 4.0K drwxr-xr-x. 2 jbellone jbellone 4.0K May 20 14:38 3.3.4/ 0 lrwxrwxrwx. 1 root root 15 May 20 14:38 current -> /srv/twbs/3.3.4/



Here is a simple recipe for installing the Redis database. This will extract the files from the remote location to /srv/redis/3.0.1 and create a symbolic link from /srv/redis/current to /srv/redis/3.0.1.

include_recipe 'build-essential::default'

source_version = '3.0.1'
download_url = "{name}-%{version}.tar.gz"

group 'redis' do
  system true

user 'redis' do
  system true
  gid 'redis'

libartifact_file 'redis-3.0.1' do
  artifact_name 'redis'
  artifact_version '3.0.1'
  owner 'redis'
  group 'redis'
  remote_url download_url
  notifies :restart, 'service[redis-server]', :delayed

service 'redis-server' do
  supports :restart, :reload
  action [:create, :start]

It is important to note that the both the user and group must exist. The resource does not make an attempt to create these. If you want to restart a service you can do so using Chef notifications.

libartifact_file Resource/Provider


  • create - Downloads and extracts a released artifact.
  • delete - Deletes a release artifact and unlinks the current symlink.

Parameter Attributes

  • artifact_name - Name of the release artifact.
  • artifact_version - Version of the release artifact.
  • install_path - Absolute path to the base location for extracting the release artifact.
  • remote_url - String (or Array) of locations to download the release artifact.
  • remote_checksum - SHA256 checksum of the release artifact.
  • owner - Owner of the release artifact (and extracted files).
  • group - Group of the release artifact (and extracted files).
  • extract_options - Extraction options to pass to the libarchive cookbook.

Foodcritic Metric

1.1.0 failed this metric

FC031: Cookbook without metadata file: /tmp/cook/d62b5e5e6390fe421cc6e554/libartifact/metadata.rb:1
FC045: Consider setting cookbook name in metadata: /tmp/cook/d62b5e5e6390fe421cc6e554/libartifact/metadata.rb:1