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

The omnibus cookbook has been deprecated

Author provided reason for deprecation:

The omnibus cookbook has been deprecated and is no longer being maintained by its authors. Use of the omnibus cookbook is no longer recommended.

RSS

omnibus (109) Versions 6.0.0

Prepares a machine to be an Omnibus builder.

Policyfile
Berkshelf
Knife
cookbook 'omnibus', '~> 6.0.0', :supermarket
cookbook 'omnibus', '~> 6.0.0'
knife supermarket install omnibus
knife supermarket download omnibus
README
Dependencies
Changelog
Quality 33%

omnibus Cookbook

Cookbook Build Status

Prepares a machine to be an Omnibus builder.

This project is managed by the CHEF Release Engineering team. For more information on the Release Engineering team's contribution, triage, and release process, please consult the CHEF Release Engineering OSS Management Guide.

Announcement

Starting with omnibus cookbook version 5.0.0:

This cookbook requires Chef Infra Client 14 or later

Starting with omnibus cookbook version 4.0.0:

  • Chef 11 is no longer supported, since 12.5.1 is required to use chef-ingredient. If needed, you can pin to omnibus version 3.2.x to preserve the old functionality.
  • Instead of compiling everything from source in this cookbook, the omnibus-toolchain package will be installed. This package contains patch, bash, make, git, ruby, rubygems, and bundler (built from omnibus-software definitions).

Requirements

This cookbook requires Chef 14+

For a full list of supported platforms and external cookbook requirements, please see the metadata.rb file at the root of the cookbook.

Recipes

The default recipe is the main entrypoint for the cookbook and does the following:

  • Ensures all required Omnibus-related directories are created and owned by the build user.
  • Ensures a sane build tool-chain is installed and configured
  • Ensures the necessary tools to run an Omnibus project (ruby, git, etc) are installed (using the omnibus-toolchain package)
  • Includes a platform-specific recipe to apply additional tweaks as appropriate.

All other recipes should be treated as "private" and are not meant to be used individually. They only exist to support the default recipe.

Attributes

Attribute Default Description
build_user omnibus The user to execute Omnibus builds as
base_dir Windows: C:/omnibus-ruby *nix: /var/cache/omnibus The "base" directory where Omnibus will store its data.

Resources

omnibus_build

This resource is used to execute a build of an Omnibus project.

Attributes

Attribute Default Description
project_name The name of the Omnibus project to build
project_dir The directory to install Omnibus
install_dir /opt/<PROJECT> The installation of the project being built
base_dir Windows: C:/omnibus-ruby *nix: /var/cache/omnibus The base directory for Omnibus
log_level :internal Log level used during the build. Valid values include: :internal, :debug, :info, :warn, :error, :fatal
config_file <PROJECT_DIR>/omnibus.rb Omnibus configuration file used for the build.
config_overrides {} Overrides for one or more Omnibus config options
expire_cache false Indicates the Omnibus cache (including git cache) should be wiped before building.
build_user node['omnibus']['build_user'] The user to execute the Omnibus build as.
environment {} Environment variables to set in the underlying build process.
live_stream false Indicates output of build process should be logged to Chef event stream.

Example Usage

omnibus_build 'harmony' do
  project\_dir 'https://github.com/chef/omnibus-harmony.git'
  log_level :internal
  config_override(
    append_timestamp: true
  )
end

Usage

Include the omnibus::default recipe in your node's run list and override the cookbook's default attributes as desired. At the very least you will want to override node['omnibus']['install_dir'] to match the installation directory of your Omnibus project.

Using Test Kitchen with Docker

The following assumes you are on a macOS workstation and have installed and started Kitematic.

  1. Set environment variables to point kitchen-docker at your local Kitematic instance:

### Bash

  export DOCKER_HOST=tcp://192.168.99.100:2376
  export DOCKER_CERT_PATH=$HOME/.docker/machine/certs
  export DOCKER_TLS_VERIFY=1

### Fish

  set -gx DOCKER_HOST "tcp://192.168.99.100:2376"
  set -gx DOCKER_CERT_PATH "$HOME/.docker/machine/certs"
  set -gx DOCKER_TLS_VERIFY 1
  1. Run Test Kitchen with the provided .kitchen.docker.yml:
  KITCHEN_LOCAL_YAML=.kitchen.docker.yml kitchen verify languages-ruby-ubuntu-1204

License & Authors

Copyright:: 2012-2017, Chef Software, Inc. (<legal@chef.io>)

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.

omnibus Cookbook CHANGELOG

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

6.0.0 (2020-08-06)

  • Require Chef Infra Client 14+ to remove the dependency on build-essential - @tas50
  • Use ::File not File in the conditional - @tas50
  • resolved cookstyle error: spec/recipes/compile_spec.rb:35:7 warning: ChefDeprecations/DeprecatedChefSpecPlatform
  • resolved cookstyle error: spec/recipes/packaging_spec.rb:19:7 warning: ChefDeprecations/DeprecatedChefSpecPlatform
  • resolved cookstyle error: libraries/omnibus_build.rb:34:35 warning: ChefDeprecations/ChefWindowsPlatformHelper
  • resolved cookstyle error: libraries/omnibus_build.rb:37:31 warning: ChefDeprecations/ChefWindowsPlatformHelper

5.7.2 (2018-08-21)

  • Remove AIX OpenTools from path

5.7.1 (2018-08-17)

  • Fix AIX env PATH

5.7.0 (2018-08-15)

  • Update version for AIX xlC path
  • Move files out of the default directories, which was a Chef 11-ism
  • Remove dependency on windows cookbook, which isn't actually being used

5.6.1 (2018-06-20)

  • Get latest stable toolchain

5.6.0 (2018-06-14)

  • Pin omnibus toolchain to 1.1.83 due to msys windows issues.

5.5.0 (2018-05-18)

  • We have native sles packages now for toolchain, let's use them

v5.4.0

  • Update toolchain to latest released version (always pull latest from stable)
  • Remove ChefSpec matchers as these are now autogenerated by ChefSpec
  • Remove very old unused attributes
  • Use multipackage installs on Debian/RHEL platforms to speed up Chef runs
  • Use the build_essential resource not the recipe so Chef 14+ can skip the cookbook and use the built in resource
  • Update kitchen yml

    • retrieve chef-client the modern way
    • add Windows 2016, Ubuntu 18.04, and FreeBSD 11
    • remove old platforms

v5.3.3

  • Bump omnibus-toolchain version to 1.1.82

v5.3.2

  • Bump omnibus-toolchain version to 1.1.80

v5.3.1

  • Bump to update chef_version requirements to Supermarket

v5.3.0

  • Create mutable copy of environment to allow modication
  • Add binutils and gnupg packages for debian and derivative systems
  • Update tested OSes
  • Clean up testing
  • Resolve foodcritic issues
  • Resolve pathing issues with selinux
  • Update minimum chef supported to 12.14
  • Bump omnibus-toolchain version to 1.1.79
  • Take advantage of using gem dependency in cookbook metadata with newer Chef

v5.2.2

  • Bump omnibus-toolchain version to 1.1.73

v5.2.1

  • Bump omnibus-toolchain version to 1.1.72

v5.2.0

  • Fix node.set for Chef 14
  • Use SPDX standard license string
  • Remove fancy_execute cookbook
  • prefix all windows vars by OMNIBUS_

v5.1.7

  • Override suse/sles toolchain versions.

v5.1.6

  • Fix regression where toolchain will not install on non-x86_64 architecture.

v5.1.5

  • Update omnibus-toolchain to version 1.1.64

v5.1.4

  • Update omnibus-toolchain to version 1.1.61 (which include windows fixes!)

v5.1.3

  • Use new architecture attribute on toolchain install
  • Add permanent fix for ChefSpec/Chef 12.18+ compat issues

v5.1.2

  • Update omnibus-toolchain to version 1.1.52
  • Switching to stable chef release

v5.1.1

  • Make windows_safe_path_join smarter and allow strings or arrays as input.
  • Fix travis failures due to unsupported metadata.

v5.1.0

  • Add live_stream attribute to omnibus_build resource

v5.0.1

  • Ignore build user group on Windows

v5.0.0

  • omnibus-toolchain now fully supports Windows
  • Update omnibus-toolchain to 1.1.46
  • Remove all traces of the pre-omnibus-toolchain world as ALL platforms are now assumed to use omnibus-toolchain

v4.2.9

  • Update omnibus-toolchain to version 1.1.42. This is the first version that contains the full s390x matrix for both angry and regular toolchain.

v4.2.8

  • Update toolchain version (1.1.39)
  • Add github templates

v4.2.7

  • Update toolchain version

v4.2.6

  • Update toolchain version

v4.2.5

  • Expose toolchain channel attribute

v4.2.4

  • Fix toolchain update logic to work on all platforms (always update)

v4.2.3

  • Bump toolchain version
  • Add fakeroot back for debian only
  • Correct toolchain paths
  • Allow Windows env variables to have newlines

v4.2.2

  • Bump toolchain version
  • Remove fakeroot recipe

v4.2.1

  • Add msys binaries to the toolchain PATH

v4.2.0

  • Export msys2 based environment on windows

v4.1.2

  • Bump the version of Ruby to 2.1.8 on non-omnibus-toolchain slaves.

v4.1.1

  • Begin cooking with cookstyle.
  • Bump the omnibus-toolchain build version to 1.1.7.

v4.1.0

  • Depend on build-essential 4.0+
  • Load the correct MinGW/MYSYS with load-omnibus-toolchain.bat
  • Generate a load-omnibus-toolchain.ps1 so Omnibus builds work as expected in PowerShell

v4.0.2

  • Install bzip2 package in the compile recipe on RHEL

v4.0.1

  • [omnibus_build] Use . as the source command is not available in all shells

v4.0.0

  • Rather than building from source, install the omnibus-toolchain package for all platforms except windows.

v3.3.0

  • Peg to build-essential >= 3.0.0
  • Update 7-zip attribute references to seven_zip

v3.2.7

  • Use powershell_script resource only on Windows.

v3.2.6

  • Remove password complexity requirement on vagrant
  • Change 7-zip default location to C:\Program Files\7-zip to match the installer.

v3.2.5

  • Use build-essential cookbook to setup windows nodes to build ruby.

v3.2.4

  • Support for ios_xr platform.

v3.2.3

  • Don't manage the build user's home

v3.2.2

  • Don't override HOME during omnibus_build execution
  • Ensure we use the

v3.2.1

  • omnibus_buld - Exclude the development group when bundle installing

v3.2.0

  • Sort env & tool list on all platforms.
  • Enable omnibus toolchain for nexus platform
  • Properly detect if the Toolchain is installed at a particular version

v3.1.4

  • 'build_user_shell' is not longer a node attribute

v3.1.3

  • Ensure all configured compilers appear on current CCR $PATH

v3.1.2

  • Properly point git compile at homebrew-installed curl
  • Ensure omnibus-toolchain is available on current CCR $PATH
  • Configure GIT_SSL_CAINFO for current CCR
  • Set build user shell to Omnibus Toolchain bash for all supported platforms
  • Don't set /usr/local ownership on recent OS X

v3.1.1

  • prepend xlc to PATH on AIX

v3.1.0

Feature

  • AIX support

v3.0.0

New Features

  • Make Git version a configurable option; Bump default version to 2.6.2.
  • Add Docker support to Test Kitchen config (used in Travis testing).

Improvements

  • Remove chruby
  • Remove rsync
  • Remove ccache
  • Update ruby_install usage.
  • Depend on remote_install cookbook and remove duplicate resource.
  • omnibus_build resource - Ensure all underlying build processes respect build_user.
  • Remove pessimistic locking in cookbook deps - This makes it easier to integrate this cookbook onto nodes with large run lists.
  • Make the install_dir attribute optional.
  • Rename cache_dir attribute to the proper base_dir (this matches the naming we use everywhere else).
  • Ensure tar is installed on EL.
  • Ensure Homebrew directories have the correct group ownership on Mac OS X.
  • Complete integration test coverage (ServerSpec) for FreeBSD, Mac OS X and Windows (yes the tests work on Windows).
  • Suppress Ruby warnings when running tests on Travis.
  • Converge and execute all integration tests on Travis against Debian, Ubuntu and CentOS.

v2.7.7

  • Fix Windows detection on older Chef versions

v2.7.6

  • Bump the version pin on the wix cookbook. We now depend on Wix 3.10 features.

v2.7.5

  • Move ruby_install to the languages cookbook and vendor from there.

v2.7.4

  • Create a separate Windows-specific OmnibusBuild provider

v2.7.3

  • Added Windows support to the omnibus_build resource

v2.7.2

  • Properly include chef-sugar in the build-cookbook::deploy.

v2.7.1

  • Publish updates to the chef-server.delivery.chef.co

v2.7.0

Feature

  • Added omnibus_build resource

v2.6.13

Bug fixes

  • File::ALT_SEPARATOR can be nil

Improvements

  • Stop creating symlinks in /usr/bin - We can use load-omnibus-toolchain.sh to set the PATH correctly
  • Use bash built by this cookbook for login shell

v2.6.12

Improvements

  • Ship our own version of cacerts

v2.6.11

Improvements

  • Fix all rubocop errors

v2.6.10

Bug fixes

  • Fix fakeroot recipe to remove obsolete resource attributes

v2.6.9

Bug fixes

  • Remove omnibus-toolchain checksums

Improvements

  • Add recipe to install the windows sdk
  • DRY up omnibus-toolchain installation logic

v2.6.8

Bug fixes

  • Install glibc-static on non-Power platforms running el-6 or higher

Improvements

  • Add path for 7-zip
  • Added logic for installing variants of the omnibus toolchain

v2.6.7

Bug fixes

  • Update Perl path in FreeBSD git configure args

v2.6.6

Bug fixes

  • Install a known working version of Bundler

v2.6.5

Improvements

  • [ruby-windows] install a cacerts bundle that works with the S3 root cert

v2.6.4

Improvements

  • Updates to support RHEL/Ubuntu ppc64/le

v2.6.3

Improvements

  • Install the omnibus toolchain package if supported
  • Don't compile tools that ship in the omnibus-toolchain package
  • Update to the latest TK with first-class Windows support!
  • Add Solaris support to the .kitchen.yml
  • Use ChefDK for all Travis testing
  • Fix all Rubocop 0.28.0 style errors

v2.6.2

Improvements

  • Ensure all platforms have a sane .gitconfig
  • Properly set Git's CA bundle on Solaris 10

v2.6.1

Improvements

  • Add patch support to ruby_install resource
  • Apply patch to Ruby source on Solaris 11 - this allows us to install Ruby 2.1.x.

v2.6.0

Improvements

  • Install glibc-static on EL6+
  • Updated Solaris 10 build toolchain

v2.5.5

Bug fixes

  • Package signing on EL7 requires the rpm-sign package.

v2.5.4

Bug fixes

  • Don't configure SSL_CERT_FILE globally on Windows

v2.5.3

Improvements

  • Solaris 11 support

Bug fixes

  • Ruby install should not modify the PATH on Win systems

v2.5.2

Improvements

  • Update the url for ccache/rsync

v2.5.1

Improvements

  • Create /etc/ssl/cert.pem symlink on FreeBSD

v2.5.0

Improvements

  • Bump Ruby version to 2.1.5

v2.4.18

Bug fixes

  • Ensure FreeBSD Ruby install points at valid root CA cert

v2.4.16

Bug fixes

  • Fix CA bundle location for omnibus env on windows
  • Upgrade Bash to 4.3.30 to fix [CVE-2014-6271] (Shellshock)

v2.4.14

Bug fixes

  • Don't allow ruby-install to install deps

v2.4.12

Bug fixes

  • Configure BSD Make for backward compat mode
  • Guarantee presence of bzip2 on RHEL

v2.4.10

Bug fixes

  • Ensure HTTPS remotes work in FreeBSD git install

v2.4.8

Bug fixes

  • Reintroduce sign-rpm script

v2.4.6

Bug fixes

  • Install ruby before git to ensure correct ownership of /usr/local/lib on OS X
  • Stop infinitively growing Windows PATH

v2.4.4

Bug fixes

  • Disable DTrace integration when compiling Ruby

v2.4.2

Bug fixes

  • Use fully-qualified names when installing FreeBSD packages

Improvement

  • Add linting support (Foodcritic, Rubocop) to repo
  • Fix ChefSpec 4.1.x deprecation warnings

v2.4.0

Feature

  • FreeBSD 10 support
  • RHEL 7 support
  • Ubuntu 14.04 support

Improvement

  • Update integration tests to ServerSpec 2
  • Remove hard dependency on yum-epel cookbook
  • RPM signing is now managed from Omnibus

v2.3.4

Bug fixes

  • Create environment scripts last.

Improvement

  • Add some additional elements to PATH on Windows systems.
  • Print gcc and make versions in load-omnibus-toolchain.bat.

v2.3.2

Improvement

  • Install fakeroot and rpm-build packages on RHEL-based systems

v2.3.0

Feature

  • SUSE support

Improvement

  • Install fakeroot and devscripts packages on Debian-based systems

v2.2.0

Improvement

  • Fix the idempotency check for chruby
  • Set SELinux to permissive
  • Install rsync
  • Update Chef Sugar to v2.0.0

v2.1.2

Improvement

  • Upgrade to ChefSpec 4
  • Use the maximum number of builders when compiling from source

Bug fixes

  • Check /usr/local/bin/bash when checking if Bash is installed
  • Bump default Ruby version to 2.1.2 to fix readline issues

v2.1.0

Feature

  • Platform-specific scripts to laod omnibus toolchain/environment
  • Deploy sign-rpm script on RHEL platform family

Improvement

  • Add proper support for Windows
  • Add a group for the build user

v2.0.2

  • Fix memory leak in string concatenation

v2.0.0

Improvement

  • Add support for Mac OS X
  • Update Rubocop
  • Update to Berkshelf 3
  • Reduce number of dependencies on community cookbooks
  • Packaged custom ChefSpec matchers
  • Added checksum verifications for installing remote packages
  • Support multiple rubies with ruby-install and chruby
  • Ensure a consistent version of bash everywhere by compiling from source
  • Improved test suite and coverage
  • Use a consistent version of git by compiling from source

Breaking

  • Dropped support for smartos
  • Dropped support for solaris2

v1.2.4

Improvement

  • Pessimistically lock deps to MAJOR.MINOR
  • Update to git cookbook ~> 3.0
  • Switch to using the yum-epel cookbook

v1.2.2

Improvement

  • Change default Ruby to 1.9.3-p484 (addresses [CVE-2013-4164])
  • Refactor recipe to install Ruby on Windows. Main change is using *.7zip package instead of *.msi.
  • Update .kitchen.yml for final 1.0 format.

v1.2.0

Feature

  • Install Ruby using rbenv

Improvement

  • Add serverspec integration test coverage
  • Add Foodcritic and Rubocop linting support
  • Add Travis CI support
  • Add FreeBSD to .kitchen.yml

v1.1.0

Feature

  • Add ccache support for faster builds.

v1.0.10

Bug

  • COOK-3178 - Fix order of git installation on FreeBSD

v1.0.8

  • [COOK-3170] Linking make to gmake breaks the package provider on FreeBSD

v1.0.6

  • [CHEF-3151] Fix regression in /tmp/portsnap call

v1.0.4

  • [CHEF-3151] Don't extract ports every time in omnibus::freebsd

v1.0.2

  • [CHEF-2576] add support for SmartOS
  • [CHEF-4141] Initial Freebsd support for omnibus

v1.0.0

  • Initial release!

Collaborator Number Metric
            

6.0.0 passed this metric

Contributing File Metric
            

6.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file

Cookstyle Metric
            

6.0.0 failed this metric

Chef/Correctness/IncorrectLibraryInjection: Libraries should be injected into the Chef::DSL::Recipe class and not Chef::Recipe or Chef::Provider classes directly. (https://docs.chef.io/workstation/cookstyle/chef_correctness_incorrectlibraryinjection): omnibus/libraries/helper.rb: 89
Chef/Correctness/IncorrectLibraryInjection: Libraries should be injected into the Chef::DSL::Recipe class and not Chef::Recipe or Chef::Provider classes directly. (https://docs.chef.io/workstation/cookstyle/chef_correctness_incorrectlibraryinjection): omnibus/libraries/helper.rb: 101

Run with Cookstyle Version 7.32.1 with cops Chef/Deprecations,Chef/Correctness,Chef/Sharing,Chef/RedundantCode,Chef/Modernize,Chef/Security,InSpec/Deprecations

No Binaries Metric
            

6.0.0 passed this metric

Testing File Metric
            

6.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file

Version Tag Metric
            

6.0.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number