/cookbook-public-gitlab

Chef's Cookbook for Public GitLab

Primary LanguageRubyMIT LicenseMIT

Public GitLab Cookbook

Chef to install the Public GitLab.

  • Public GitLab: 5-3-stable
  • GitLab Shell: 1.5.0
  • Ruby: 1.9.3
  • Redis: 2.6.13
  • Git: 1.8
  • Nginx: 1.1.19
  • PostgreSQL: 9.1.9
  • MySQL: 5.5.31

Requirements

Vagrant Plugin

Platform:

  • Ubuntu (13.04)
  • CentOS (6.4)

Attributes

  • Package
  • User
  • GitLab shell
  • GitLab shell config
  • GitLab hq
  • GitLab hq config
  • Gems
  • Git

Installation

Vagrant

VirtualBox

$ gem install berkshelf
$ vagrant plugin install vagrant-berkshelf
$ git clone git://github.com/ganta/cookbook-public-gitlab public-gitlab
$ cd public-gitlab
$ $EDITOR Vagrantfile
$ vagrant up

Amazon Web Services

$ gem install berkshelf
$ vagrant plugin install vagrant-berkshelf
$ vagrant plugin install vagrant-aws
$ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
$ git clone git://github.com/ganta/cookbook-public-gitlab public-gitlab
$ cd public-gitlab
$ cp example/Vagrantfile_aws Vagrantfile
$ $EDITOR Vagrantfile
$ vagrant up --provider=aws
$ vagrant ssh-config | awk '/HostName/ {print $2}'
$ $EDITOR Vagrantfile
$ vagrant provision

knife-solo

$ gem install berkshelf
$ gem install knife-solo
$ knife configure
$ knife solo init chef-repo
$ cd chef-repo
$ echo 'cookbook "gitlab", github: "ganta/cookbook-public-gitlab"' >> Berksfile
$ knife solo prepare vagrant@127.0.0.1 -p 2222 -i ~/.vagrant.d/insecure_private_key
$ $EDITOR nodes/127.0.0.1.json
$ knife solo cook vagrant@127.0.0.1 -p 2222 -i ~/.vagrant.d/insecure_private_key --no-chef-check

Usage

Example of node config.

{
  "postfix": {
    "mail_type": "client",
    "myhostname": "mail.example.com",
    "mydomain": "example.com",
    "myorigin": "mail.example.com",
    "smtp_use_tls": "no"
  },
  "postgresql": {
    "password": {
      "postgres": "psqlpass"
    }
  },
  "mysql": {
    "server_root_password": "rootpass",
    "server_repl_password": "replpass",
    "server_debian_password": "debianpass"
  },
  "gitlab": {
    "host": "example.com",
    "url": "http://example.com/",
    "email_from": "gitlab@example.com",
    "support_email": "support@example.com",
    "database_adapter": "postgresql",
    "database_password": "datapass"
  },
  "run_list":[
    "postfix",
    "gitlab::initial",
    "gitlab::install"
  ]
}

Database use mysql.

Set mysql to database_adapter.

{
...
  "gitlab": {
    "database_adapter": "mysql"
  }
}

GitLab Update

Add gitlab::update to run_list.

{
...
  "run_list":[
    "gitlab::update",
    "gitlab::install"
  ]
}

Done!

http://localhost:8080/ or your server for your first GitLab login.

admin@local.host
5iveL!fe

Links

License

Public GitLab Cookbook is provided and maintained by Hideki IGARASHI.

Public GitLab Cookbook is distribute unde the same license as the original cookbook.

This fork is based on @ogom work, from his original fork.