cookbook 'gitlab_omnibus', '= 0.1.0'
gitlab_omnibus (12) Versions 0.1.0 Follow8
Installs/Configures GitLab and GitLab CI Omnibus
cookbook 'gitlab_omnibus', '= 0.1.0', :supermarket
knife supermarket install gitlab_omnibus
knife supermarket download gitlab_omnibus
Description
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.
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.
Requirements
Platform:
- Centos (>= 6.5)
- Debian (>= 7.1)
- Ubuntu (>= 12.04)
Cookbooks:
No dependencies defined
Attributes
-
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"{ ... }"
.
Recipes
- 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 :)
Roadmap
- Support GitLab CI Runners
Testing
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 (drew.blessing@mac.com)
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
0.1.0 failed this metric
FC045: Consider setting cookbook name in metadata: /tmp/cook/ae79a669c50c3db1de768a80/gitlab_omnibus/metadata.rb:1