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

daemontools (22) Versions 1.6.0

Installs/Configures daemontools

Policyfile
Berkshelf
Knife
cookbook 'daemontools', '= 1.6.0', :supermarket
cookbook 'daemontools', '= 1.6.0'
knife supermarket install daemontools
knife supermarket download daemontools
README
Dependencies
Changelog
Quality 83%

Description

Cookbook Version
Build Status
OpenCollective
OpenCollective
License

Installs DJB's Daemontools and includes a service custom resource.

Requirements

Platform

Tested via Test Kitchen.

  • Ubuntu 20.04
  • CentOS 7, 8
  • AmazonLinux 2
  • Gentoo
  • ArchLinux

This cookbook is known in the past to work on ArchLinux and Gentoo, but as they are rolling release distributions, it is difficult to ensure compatibility over time.

May work on other platforms with or without modification using the "source" installation method. See Attributes and Recipes below.

Depending Cookbooks

  • pacman - for aur recipe, on ArchLinux systems
  • build-essential - for source recipe

Attributes

  • node['daemontools']['bin_dir'] - Sets the location of the binaries for daemontools, default is selected by platform, or '/usr/local/bin' as a fallback.
  • node['daemontools']['service_dir'] - Daemontools "service" directory where svscan will find services to manage.
  • node['daemontools']['install_method'] - how to install daemontools, can be source, package or aur (for ArchLinux).
  • node['daemontools']['start_svscan'] - whether to start svscan (includes the svscan recipe), true by default.
  • node['daemontools']['package_name'] - name of the "daemontools" package, default value varies by platform.

Recipes

default

The default recipe includes the appropriate installation method's recipe using the node['daemontools']['install_method'] attribute.

If the start_svscan attribute is true, then include the svscan recipe too.

package

Installs the daemontools package, using the node['daemontools']['package_name'] attribute. On Debian family systems, this is daemontools-run, which depends on daemontools (and provides run time / init system configuration).

On other untested platforms (e.g., RHEL family), if a local daemontools package is built and it sets up the appropriate init system configuration (systemd, upstart, inittab), then this recipe will be sufficient. Otherwise, write a custom recipe.

aur

Used on ArchLinux systems to install daemontools from the Arch User Repository (AUR). Exits gracefully without exception if used on other platforms.

source

The source installation of daemontools should work on most other platforms that do not have a package available. A custom recipe may be required to configure the svscan service init script or upstart or systemd configuration.

svscan

Enables and starts the svscan service. This requires that the local system have properly set up the svscan service for the appropriate init system. It's outside the scope of this cookbook to detect this for every possible platform, so a custom recipe may be required. For example, Debian family daemontools-run package provides this.

Resource

This cookbook includes a custom resource, daemontools_service, for managing services with daemontools. Examples:

daemontools_service "tinydns-internal" do
  directory "/etc/djbdns/tinydns-internal"
  template false
  action [:enable,:start]
end

daemontools_service "chef-client" do
  directory "/etc/sv/chef-client"
  template "chef-client"
  action [:enable,:start]
  log true
end

Daemontools itself can perform a number of actions on services. The following are commands sent via the svc program. See its man page for more information.

  • start, stop, status, restart, up, down, once, pause, cont, hup, alrm, int, term, kill

Enabling a service (:enable action) is done by setting up the directory located by the directory resource attribute. The following are set up:

  • run script that runs the service startup using the template resource attribute name.
  • log/run directory and script that runs the logger if the resource attribute log is true.
  • finish script, if specified using the finish resource attribute
  • env directory, containing ENV variables if specified with the env resource attribute
  • links the node['daemontools']['service_dir']/service_name to the service_name directory.

The default action is :start - once enabled daemontools services are started by svscan anyway.

The name attribute for the resource is service_name.

Usage

Include the daemontools recipe on nodes that should have daemontools installed for managing services. Use the daemontools_service custom resource for any services that should be managed by daemontools. In your cookbooks where daemontools_service is used, create the appropriate run and log-run scripts for your service. For example if the service is "flowers":

daemontools_service "flowers" do
  directory "/etc/sv/flowers"
  template "flowers"
  action [:enable, :start]
  log true
end

Create these templates in your cookbook:

  • templates/default/sv-flowers-run.erb
  • templates/default/sv-flowers-log-run.erb

If your service also has a finish script, set the resource attribute finish to true and create sv-flowers-finish.erb.

The content of the scripts should be appropriate for the "flowers" service.

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers!

https://opencollective.com/sous-chefs#backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

https://opencollective.com/sous-chefs/sponsor/0/website
https://opencollective.com/sous-chefs/sponsor/1/website
https://opencollective.com/sous-chefs/sponsor/2/website
https://opencollective.com/sous-chefs/sponsor/3/website
https://opencollective.com/sous-chefs/sponsor/4/website
https://opencollective.com/sous-chefs/sponsor/5/website
https://opencollective.com/sous-chefs/sponsor/6/website
https://opencollective.com/sous-chefs/sponsor/7/website
https://opencollective.com/sous-chefs/sponsor/8/website
https://opencollective.com/sous-chefs/sponsor/9/website

daemontools

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

v1.6.0 (2020-10-16)

  • Transferred ownership to sous-chefs
  • Updated supported platforms
  • Rewrote for new (v12.5+) custom resource

v1.5.0 (2014-12-30)

  • Recursively create directory in daemontools_service provider (#16)
  • Add svscan recipe for managing the svscan service so supervised services by daemontools_service work (#12, #21)
  • Update test kitchen support, add tests (#18)
  • Improve recipe readability, adding package_name attribute, and refactor package, source recipes
  • Add pacman as a dependency so ArchLinux "just works"

v1.4.0 (2014-12-15)

  • Adding variables parameter to templates in service LWRP

v1.3.0 (2014-04-23)

  • COOK-2655 : Replace "execute" method with "run_command_with_systems_locale"

v1.2.0 (2014-02-25)

  • [COOK-4181] - Parameterize source tarball location

v1.1.0

  • COOK-3234 - Fix issue where templates could not be updated after service is enabled
  • COOK-3207 - Add Gentoo platform support via package installation

v1.0.2

  • [COOK-2688]: missing space between link and name

v1.0.0

  • [COOK-1388] - Conditional fix-ups
  • [COOK-1428] - Resolve foodcritic warnings

Collaborator Number Metric
            

1.6.0 passed this metric

Contributing File Metric
            

1.6.0 passed this metric

Foodcritic Metric
            

1.6.0 failed this metric

FC064: Ensure issues_url is set in metadata: daemontools/metadata.rb:1
FC065: Ensure source_url is set in metadata: daemontools/metadata.rb:1
FC066: Ensure chef_version is set in metadata: daemontools/metadata.rb:1
Run with Foodcritic Version 16.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric
            

1.6.0 passed this metric

Testing File Metric
            

1.6.0 passed this metric

Version Tag Metric
            

1.6.0 passed this metric