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


gitlab_omnibus (12) Versions 0.1.0

Installs/Configures GitLab and GitLab CI Omnibus

cookbook 'gitlab_omnibus', '= 0.1.0'
cookbook 'gitlab_omnibus', '= 0.1.0', :supermarket
knife supermarket install gitlab_omnibus
knife supermarket download gitlab_omnibus
Quality 0%


Install and configure GitLab and GitLab CI using GitLab Omnibus packages. GitLab Omnibus packages contain all dependencies needed to run GitLab including Ruby, PostgreSQL database, etc.

This cookbook is in the early stages. Please try it out and provide feedback in the issue tracker if you have trouble.

Issue Tracker

Getting Started

By default, this cookbook does not require any attributes to be set. Simply include this recipe in a wrapper cookbook or on a node and GitLab will be installed and configured with external_url set to https://#{node['fqdn']}. Override node['gitlab_omnibus']['external_url'] if the default doesn't fit your needs.

GitLab CI is not enabled/configured by default.

All other configuration values default to the values specified in the GitLab Omnibus package. See gitlab.rb.template in the GitLab Omnibus repository for default values. For each configuration key in the template file there is a configuration hash in this cookbook. For example, to set gitlab_rails['gitlab_ssh_host'] use node['gitlab_omnibus']['gitlab_rails']['gitlab_ssh_host'] = ''. Similarly, to set unicorn['port'] use node['gitlab_omnibus']['unicorn']['port'] = 8181.

Enterprise GitLab

This cookbook supports installation of GitLab EE in addition to CE. Enterprise users must set node['gitlab_omnibus']['package_url']. The package URL can be obtained from the GitLab EE repository once you have subscription access.



  • Centos (>= 6.5)
  • Debian (>= 7.1)
  • Ubuntu (>= 12.04)


No dependencies defined


  • node['gitlab_omnibus']['version'] - Specify GitLab version to install. This is ignored if package_url is specified. Defaults to "7.8.1".
  • node['gitlab_omnibus']['package_url'] - Determine package URL based on specified version and platform/platform version. Defaults to "".
  • node['gitlab_omnibus']['external_url'] - URL where GitLab will be accessible. Defaults to "https://\#{node['fqdn']}".
  • node['gitlab_omnibus']['gitlab_rails'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['user'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['unicorn'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['sidekiq'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['gitlab_shell'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['postgresql'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['redis'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['web_server'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['nginx'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['logging'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['logrotate'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['omnibus_gitconfig'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['ci_external_url'] - URL where GitLab CI will be accessible. Setting this value enables/configures GitLab CI. Defaults to "nil".
  • node['gitlab_omnibus']['gitlab_ci'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['ci_unicorn'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['ci_sidekiq'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['ci_redis'] - Defaults to "{ ... }".
  • node['gitlab_omnibus']['ci_nginx'] - Defaults to "{ ... }".


  • gitlab_omnibus::default

Things this cookbook doesn't do:

  • Manage a firewall
  • Install SSH or Postfix
  • Manage secrets (database passwords, SSL keys/certs, etc)

Why not?

This is a library/application cookbook. It's sole purpose is installation and configuration of GitLab and/or GitLab CI. The goal is to avoid assumptions about how users like to use Chef. Therefore, it does not require any data bags, manage secrets, install SSL certificates, or anything else of that nature. This leaves users free to wrap the cookbook and add those bits that work for their environment.

Users of this cookbook probably have their own cookbooks/configurations for these items already. If not, they really should :)


  1. Support GitLab CI Runners


Code Style

To run style tests (Rubocop and Foodcritic): rake style

If you want to run either Rubocop or Foodcritic separately, specify the style test type (Rubocop = ruby, Foodcritic = chef) rake style:chef or rake style:ruby

RSpec tests

Run RSpec unit tests rake spec

Test Kitchen

Run Test Kitchen tests (these tests take quite a bit of time) rake integration:vagrant

License and Maintainer

Maintainer:: Drew Blessing (

License:: Apache 2.0

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

Foodcritic Metric

0.1.0 failed this metric

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