Version information
This version is compatible with:
- Puppet Enterprise 3.x
- Puppet 3.x
- , , , , ,
This module has been deprecated by its author since Feb 8th 2018.
The author has suggested puppet-gitlab as its replacement.
Start using this module
Documentation
Table of Contents
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with gitlab
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
This Puppet module installs and manages Gitlab. It makes use of the provided Omnibus packages and the packagecloud package repositories.
Module Description
The module installs the Gitlab package from the provided repositories and creates the configuration file
which is then used by gitlab-ctl reconfigure
to configure all the services. Fun fact: This really uses
Chef to configure all the services.
Supported are Debian based (Ubuntu, Debian) and RedHat based (CentOS, RHEL) operating systems. Although the RedHat based are not yet tested.
As Gitlab is providing the package repo since 7.10+, this module only works with CE edition greater than 7.10. Also the enterprise edition package is only available since 7.11+. So the EE is supported with versions greater than 7.11.
Setup
What gitlab affects
- Package repository (APT or YUM)
- Package
gitlab-ce
odergitlab-ee
(depending on the chosen edition) - Configuration file
/etc/gitlab/gitlab.rb
- System service
gitlab-runsvdir
- Gitlab configuration using
gitlab-ctl reconfigure
Setup Requirements
Have a look at the official download page for the required prerequisits (f.e. Postfix). This module doesn't handle them, that's the job of the specific modules.
It requires only the puppetlabs-apt module when using it under
a Debian based OS and the paramater manage_package_repo
is not false. Furthermore the stdlib
module is required.
Beginning with Gitlab
Just include the class and specify at least external_url
.
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
}
The module also supports Hiera, here comes an example:
gitlab::external_url: 'http://gitlab.mydomain.tld'
gitlab::rails:
time_zone: 'UTC'
gitlab_email_enabled: false
gitlab_default_theme: 4
gitlab_email_display_name: 'Gitlab'
gitlab::sidekiq:
shutdown_timeout: 5
If one wants to install Gitlab Enterprise Edition, just define the parameter edition
with the value ee
:
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
edition => 'ee',
}
Note: This works only for Gitlab version 7.11 and greater. See this blog entry: GitLab 7.11 released with Two-factor Authentication and a publicly viewable Enterprise Edition
Usage
To find the default values, have a look at params.pp
. All other parameters are documented
inside init.pp
.
The main class (init.pp
) exposes the configuration sections from the gitlab.rb
configuration file
as hashes. So if there are any parameter changes in future versions of Gitlab, the module should support
them right out of the box. Only if there would be bigger changes to sections, the module would need
some updates.
All possible parameters for gitlab.rb
can be found here: gitlab.rb.template
Some examples:
class { 'gitlab':
external_url => 'http://gitlab.mydomain.tld',
gitlab_rails => {
'webhook_timeout' => 10,
'gitlab_default_theme' => 2,
},
logging => {
'svlogd_size' => '200 * 1024 * 1024',
},
}
Limitations
The supported operating systems by Gitlab Omnibus are to be found on the official download page. At the moment the module is not yet tested under RPM based operating systems. But in theory it should work as all the preparations are there.
Development
- Fork it (https://github.com/vshn/puppet-gitlab/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Make sure your PR passes the Rspec tests.
Why another Gitlab module
There exists a great module from @spuder: https://github.com/spuder/puppet-gitlab
Many thanks for the great work done there. Gitlab itself is an ever changing piece of software. Lately
they added the package repository which makes a lot of things easier. This was one reason to rewrite the module.
The other reason was that the other Gitlab module exposes ALL possible parameters of gitlab.rb
which makes
it a pain to maintain. This module makes it much easier by just exposing the sections. So it is hopefully
much more compatible to upcoming versions of Gitlab.
Dependencies
- puppetlabs/stdlib (4.x)
- puppetlabs/apt (>=1.8.0 <2.0.0)
Copyright (c) 2015, VSHN AG, info@vshn.ch All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of VSHN nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.