Commit 926580ec65d2ea8ca61d29c8c1f37b993231fa17

Authored by Jacob Vosmaer
2 parents 1d969cd9 1ece0386

Merge branch 'configure_gitlab_shell' into 'master'

Configure Gitlab Shell
files/gitlab-cookbooks/gitlab/attributes/default.rb
... ... @@ -22,11 +22,17 @@ default['gitlab']['bootstrap']['enable'] = true
22 22 ####
23 23 # The username for the chef services user
24 24 default['gitlab']['user']['username'] = "git"
  25 +default['gitlab']['user']['group'] = "git"
25 26 # The shell for the chef services user
26 27 default['gitlab']['user']['shell'] = "/bin/sh"
27 28 # The home directory for the chef services user
28 29 default['gitlab']['user']['home'] = "/var/opt/gitlab"
29 30  
  31 +default['gitlab']['gitlab-core']['repositories_path'] = "/var/opt/gitlab/repositories"
  32 +default['gitlab']['gitlab-core']['internal_api_url'] = "http://localhost:8080"
  33 +
  34 +default['gitlab']['gitlab-shell']['log_directory'] = "/var/log/gitlab/gitlab-shell/"
  35 +
30 36  
31 37 ###
32 38 # PostgreSQL
... ...
files/gitlab-cookbooks/gitlab/recipes/default.rb
... ... @@ -45,6 +45,7 @@ directory "/var/opt/gitlab" do
45 45 end
46 46  
47 47 include_recipe "gitlab::users"
  48 +include_recipe "gitlab::gitlab-shell"
48 49  
49 50 # Install our runit instance
50 51 include_recipe "runit"
... ...
files/gitlab-cookbooks/gitlab/recipes/gitlab-shell.rb 0 → 100644
... ... @@ -0,0 +1,44 @@
  1 +git_user = node['gitlab']['user']['username']
  2 +git_group = node['gitlab']['user']['group']
  3 +gitlab_shell_dir = "/opt/gitlab/embedded/service/gitlab-shell"
  4 +repositories_path = node['gitlab']['gitlab-core']['repositories_path']
  5 +ssh_dir = File.join(node['gitlab']['user']['home'], ".ssh")
  6 +log_directory = node['gitlab']['gitlab-shell']['log_directory']
  7 +
  8 +# Create directories because the git_user does not own its home directory
  9 +directory repositories_path do
  10 + owner git_user
  11 + group git_group
  12 +end
  13 +
  14 +directory ssh_dir do
  15 + owner git_user
  16 + group git_group
  17 + mode "0700"
  18 +end
  19 +
  20 +directory log_directory do
  21 + owner git_user
  22 +end
  23 +
  24 +template File.join(gitlab_shell_dir, "config.yml") do
  25 + source "gitlab-shell-config.yml.erb"
  26 + owner git_user
  27 + group git_group
  28 + variables(
  29 + :user => git_user,
  30 + :api_url => node['gitlab']['gitlab-core']['internal_api_url'],
  31 + :repositories_path => repositories_path,
  32 + :authorized_keys => File.join(ssh_dir, "authorized_keys"),
  33 + :redis_port => node['gitlab']['redis']['port'],
  34 + :log_file => File.join(log_directory, "gitlab-shell.log")
  35 + )
  36 + notifies :run, "execute[bin/install]"
  37 +end
  38 +
  39 +execute "bin/install" do
  40 + cwd gitlab_shell_dir
  41 + user git_user
  42 + group git_group
  43 + action :nothing
  44 +end
... ...
files/gitlab-cookbooks/gitlab/templates/default/gitlab-shell-config.yml.erb 0 → 100644
... ... @@ -0,0 +1,41 @@
  1 +# GitLab user. git by default
  2 +user: <%= @user %>
  3 +
  4 +# Url to gitlab instance. Used for api calls. Should end with a slash.
  5 +gitlab_url: "<%= @api_url %>"
  6 +
  7 +http_settings:
  8 +# user: someone
  9 +# password: somepass
  10 +# ca_file: /etc/ssl/cert.pem
  11 +# ca_path: /etc/pki/tls/certs
  12 + self_signed_cert: false
  13 +
  14 +# Repositories path
  15 +# Give the canonicalized absolute pathname,
  16 +# REPOS_PATH MUST NOT CONTAIN ANY SYMLINK!!!
  17 +# Check twice that none of the components is a symlink, including "/home".
  18 +repos_path: "<%= @repositories_path %>"
  19 +
  20 +# File used as authorized_keys for gitlab user
  21 +auth_file: "<%= @authorized_keys %>"
  22 +
  23 +# Redis settings used for pushing commit notices to gitlab
  24 +redis:
  25 + bin: /opt/gitlab/embedded/bin/redis-cli
  26 + host: 127.0.0.1
  27 + port: <%= @redis_port %>
  28 + # socket: /tmp/redis.socket # Only define this if you want to use sockets
  29 + namespace: resque:gitlab
  30 +
  31 +# Log file.
  32 +# Default is gitlab-shell.log in the root directory.
  33 +log_file: "<%= @log_file %>"
  34 +
  35 +# Log level. INFO by default
  36 +log_level: INFO
  37 +
  38 +# Audit usernames.
  39 +# Set to true to see real usernames in the logs instead of key ids, which is easier to follow, but
  40 +# incurs an extra API call on every gitlab-shell command.
  41 +audit_usernames: false
... ...