Commit 4bd6f027ed05df72bdab94b296f3c20b48e2cb39

Authored by Jacob Vosmaer
2 parents 33d1c979 d0cdcf74

Merge branch 'git_data_dir' into 'master'

Git Data Dir
README.md
... ... @@ -98,9 +98,20 @@ Omnibus-gitlab uses four different directories.
98 98 - `/var/log/gitlab` contains all log data generated by components of
99 99 omnibus-gitlab.
100 100  
  101 +### Storing Git data in an alternative directory
  102 +
  103 +By default, omnibus-gitlab stores Git repository data in `/var/opt/gitlab/git-data`.
  104 +You can change this location by adding the following line to `/etc/gitlab/gitlab.rb`.
  105 +
  106 +```ruby
  107 +git_data_dir "/mnt/nas/git-data"
  108 +```
  109 +
  110 +Run `sudo gitlab-ctl reconfigure` for the change to take effect.
  111 +
101 112 ## Building your own package
102 113  
103 114 See [the separate build documentation](doc/build.md).
104 115  
105 116 [downloads]: https://www.gitlab.com/downloads
106   -[CE README]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/README.md
107 117 \ No newline at end of file
  118 +[CE README]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/README.md
... ...
files/gitlab-cookbooks/gitlab/attributes/default.rb
... ... @@ -86,10 +86,10 @@ default['gitlab']['gitlab-rails']['ldap_method'] = "ssl"
86 86 default['gitlab']['gitlab-rails']['ldap_bind_dn'] = "_the_full_dn_of_the_user_you_will_bind_with"
87 87 default['gitlab']['gitlab-rails']['ldap_password'] = "_the_password_of_the_bind_user"
88 88 default['gitlab']['gitlab-rails']['ldap_allow_username_or_email_login'] = true
89   -default['gitlab']['gitlab-rails']['satellites_path'] = "/var/opt/gitlab/gitlab-satellites"
  89 +default['gitlab']['gitlab-rails']['satellites_path'] = "/var/opt/gitlab/git-data/gitlab-satellites"
90 90 default['gitlab']['gitlab-rails']['backup_path'] = "tmp/backups"
91 91 default['gitlab']['gitlab-rails']['gitlab_shell_path'] = "/opt/gitlab/embedded/service/gitlab-shell/"
92   -default['gitlab']['gitlab-rails']['gitlab_shell_repos_path'] = "/var/opt/gitlab/repositories"
  92 +default['gitlab']['gitlab-rails']['gitlab_shell_repos_path'] = "/var/opt/gitlab/git-data/repositories"
93 93 default['gitlab']['gitlab-rails']['gitlab_shell_hooks_path'] = "/opt/gitlab/embedded/service/gitlab-shell/hooks/"
94 94 default['gitlab']['gitlab-rails']['gitlab_shell_upload_pack'] = true
95 95 default['gitlab']['gitlab-rails']['gitlab_shell_receive_pack'] = true
... ... @@ -125,6 +125,7 @@ default['gitlab']['sidekiq']['log_directory'] = "/var/log/gitlab/sidekiq"
125 125 # gitlab-shell
126 126 ###
127 127 default['gitlab']['gitlab-shell']['log_directory'] = "/var/log/gitlab/gitlab-shell/"
  128 +default['gitlab']['gitlab-shell']['git_data_directory'] = "/var/opt/gitlab/git-data"
128 129  
129 130  
130 131 ###
... ...
files/gitlab-cookbooks/gitlab/libraries/gitlab.rb
... ... @@ -31,11 +31,13 @@ module Gitlab
31 31 postgresql Mash.new
32 32 redis Mash.new
33 33 gitlab_rails Mash.new
  34 + gitlab_shell Mash.new
34 35 unicorn Mash.new
35 36 sidekiq Mash.new
36 37 nginx Mash.new
37 38 node nil
38 39 external_url nil
  40 + git_data_dir nil
39 41  
40 42 class << self
41 43  
... ... @@ -103,6 +105,14 @@ module Gitlab
103 105 Gitlab['gitlab_rails']['gitlab_port'] = uri.port
104 106 end
105 107  
  108 + def parse_git_data_dir
  109 + return unless git_data_dir
  110 +
  111 + Gitlab['gitlab_shell']['git_data_directory'] ||= git_data_dir
  112 + Gitlab['gitlab_rails']['gitlab_shell_repos_path'] ||= File.join(git_data_dir, "repositories")
  113 + Gitlab['gitlab_rails']['satellites_path'] ||= File.join(git_data_dir, "gitlab-satellites")
  114 + end
  115 +
106 116 def generate_hash
107 117 results = { "gitlab" => {} }
108 118 [
... ... @@ -110,6 +120,7 @@ module Gitlab
110 120 "user",
111 121 "redis",
112 122 "gitlab_rails",
  123 + "gitlab_shell",
113 124 "unicorn",
114 125 "sidekiq",
115 126 "nginx",
... ... @@ -125,6 +136,7 @@ module Gitlab
125 136 def generate_config(node_name)
126 137 generate_secrets(node_name)
127 138 parse_external_url
  139 + parse_git_data_dir
128 140 generate_hash
129 141 end
130 142 end
... ...
files/gitlab-cookbooks/gitlab/recipes/gitlab-shell.rb
... ... @@ -44,16 +44,16 @@ execute &quot;chcon -t ssh_home_t #{ssh_dir}&quot; do
44 44 only_if "id -Z"
45 45 end
46 46  
47   -directory log_directory do
48   - owner git_user
49   - mode "0700"
50   - recursive true
51   -end
52   -
53   -directory gitlab_shell_var_dir do
54   - owner git_user
55   - mode '0700'
56   - recursive true
  47 +[
  48 + log_directory,
  49 + gitlab_shell_var_dir,
  50 + node['gitlab']['gitlab-shell']['git_data_directory']
  51 +].each do |dir|
  52 + directory dir do
  53 + owner git_user
  54 + mode "0700"
  55 + recursive true
  56 + end
57 57 end
58 58  
59 59 template_symlink File.join(gitlab_shell_var_dir, "config.yml") do
... ...