Commit fa774dd57aec9cbaf6eaa11475bf030fd3938a82

Authored by Jacob Vosmaer
1 parent 4e74894b

Fill in gitlab.yml

files/gitlab-cookbooks/gitlab/attributes/default.rb
@@ -51,7 +51,13 @@ default['gitlab']['gitlab-core']['umask'] = "0022" @@ -51,7 +51,13 @@ default['gitlab']['gitlab-core']['umask'] = "0022"
51 default['gitlab']['gitlab-core']['worker_processes'] = 2 51 default['gitlab']['gitlab-core']['worker_processes'] = 2
52 52
53 default['gitlab']['gitlab-core']['repositories_path'] = "/var/opt/gitlab/repositories" 53 default['gitlab']['gitlab-core']['repositories_path'] = "/var/opt/gitlab/repositories"
  54 +default['gitlab']['gitlab-core']['satellites_path'] = "/var/opt/gitlab/gitlab-satellites"
54 default['gitlab']['gitlab-core']['internal_api_url'] = "http://localhost:8080" 55 default['gitlab']['gitlab-core']['internal_api_url'] = "http://localhost:8080"
  56 +default['gitlab']['gitlab-core']['external_fqdn'] = node['fqdn']
  57 +default['gitlab']['gitlab-core']['external_port'] = 80
  58 +default['gitlab']['gitlab-core']['external_https'] = false
  59 +default['gitlab']['gitlab-core']['notification_email'] = "gitlab@#{node['fqdn']}"
  60 +default['gitlab']['gitlab-core']['support_email'] = "support@example.com"
55 61
56 62
57 ### 63 ###
files/gitlab-cookbooks/gitlab/recipes/gitlab-core.rb
@@ -62,8 +62,19 @@ template database_yml do @@ -62,8 +62,19 @@ template database_yml do
62 notifies :restart, 'service[gitlab-core]' if should_notify 62 notifies :restart, 'service[gitlab-core]' if should_notify
63 end 63 end
64 64
65 -link "/opt/gitlab/embedded/service/gitlab-core/config/database.yml" do  
66 - to database_yml 65 +gitlab_yml = File.join(gitlab_core_etc_dir, "gitlab.yml")
  66 +
  67 +template gitlab_yml do
  68 + source "gitlab.yml.erb"
  69 + owner "root"
  70 + group "root"
  71 + mode "0644"
  72 + variables(node['gitlab']['gitlab-core'].to_hash)
  73 + notifies :restart, 'service[gitlab-core]' if should_notify
  74 +end
  75 +
  76 +link "/opt/gitlab/embedded/service/gitlab-core/config/gitlab.yml" do
  77 + to gitlab_yml
67 end 78 end
68 79
69 unicorn_listen_tcp = node['gitlab']['gitlab-core']['listen'] 80 unicorn_listen_tcp = node['gitlab']['gitlab-core']['listen']
files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb 0 → 100644
@@ -0,0 +1,238 @@ @@ -0,0 +1,238 @@
  1 +# # # # # # # # # # # # # # # # # #
  2 +# GitLab application config file #
  3 +# # # # # # # # # # # # # # # # # #
  4 +#
  5 +# How to use:
  6 +# 1. copy file as gitlab.yml
  7 +# 2. Replace gitlab -> host with your domain
  8 +# 3. Replace gitlab -> email_from
  9 +
  10 +production: &base
  11 + #
  12 + # 1. GitLab app settings
  13 + # ==========================
  14 +
  15 + ## GitLab settings
  16 + gitlab:
  17 + ## Web server settings (note: host is the FQDN, do not include http://)
  18 + host: <%= node['gitlab']['gitlab-core']['external_fqdn'] %>
  19 + port: <%= node['gitlab']['gitlab-core']['external_port'] %>
  20 + https: <%= node['gitlab']['gitlab-core']['external_https'] %>
  21 +
  22 + # Uncomment and customize the last line to run in a non-root path
  23 + # WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this.
  24 + # Note that four settings need to be changed for this to work.
  25 + # 1) In your application.rb file: config.relative_url_root = "/gitlab"
  26 + # 2) In your gitlab.yml file: relative_url_root: /gitlab
  27 + # 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
  28 + # 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab"
  29 + # To update the path, run: sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
  30 + #
  31 + # relative_url_root: /gitlab
  32 +
  33 + # Uncomment and customize if you can't use the default user to run GitLab (default: 'git')
  34 + # user: git
  35 +
  36 + ## Email settings
  37 + # Email address used in the "From" field in mails sent by GitLab
  38 + email_from: <%= node['gitlab']['gitlab-core']['notification_email'] %>
  39 +
  40 + # Email address of your support contact (default: same as email_from)
  41 + support_email: <%= node['gitlab']['gitlab-core']['support_email'] %>
  42 +
  43 + ## User settings
  44 + default_projects_limit: 10
  45 + # default_can_create_group: false # default: true
  46 + # username_changing_enabled: false # default: true - User can change her username/namespace
  47 + ## Default theme
  48 + ## BASIC = 1
  49 + ## MARS = 2
  50 + ## MODERN = 3
  51 + ## GRAY = 4
  52 + ## COLOR = 5
  53 + # default_theme: 2 # default: 2
  54 +
  55 +
  56 + ## Users management
  57 + # default: false - Account passwords are not sent via the email if signup is enabled.
  58 + # signup_enabled: true
  59 +
  60 + # Restrict setting visibility levels for non-admin users.
  61 + # The default is to allow all levels.
  62 + #restricted_visibility_levels: [ "public" ]
  63 +
  64 + ## Automatic issue closing
  65 + # If a commit message matches this regular expression, all issues referenced from the matched text will be closed.
  66 + # This happens when the commit is pushed or merged into the default branch of a project.
  67 + # When not specified the default issue_closing_pattern as specified below will be used.
  68 + # issue_closing_pattern: '([Cc]lose[sd]|[Ff]ixe[sd]) +#\d+'
  69 +
  70 + ## Default project features settings
  71 + default_projects_features:
  72 + issues: true
  73 + merge_requests: true
  74 + wiki: true
  75 + wall: false
  76 + snippets: false
  77 + visibility_level: "private" # can be "private" | "internal" | "public"
  78 +
  79 + ## External issues trackers
  80 + issues_tracker:
  81 + # redmine:
  82 + # title: "Redmine"
  83 + # ## If not nil, link 'Issues' on project page will be replaced with this
  84 + # ## Use placeholders:
  85 + # ## :project_id - GitLab project identifier
  86 + # ## :issues_tracker_id - Project Name or Id in external issue tracker
  87 + # project_url: "http://redmine.sample/projects/:issues_tracker_id"
  88 + #
  89 + # ## If not nil, links from /#\d/ entities from commit messages will replaced with this
  90 + # ## Use placeholders:
  91 + # ## :project_id - GitLab project identifier
  92 + # ## :issues_tracker_id - Project Name or Id in external issue tracker
  93 + # ## :id - Issue id (from commit messages)
  94 + # issues_url: "http://redmine.sample/issues/:id"
  95 + #
  96 + # ## If not nil, linkis to creating new issues will be replaced with this
  97 + # ## Use placeholders:
  98 + # ## :project_id - GitLab project identifier
  99 + # ## :issues_tracker_id - Project Name or Id in external issue tracker
  100 + # new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new"
  101 + #
  102 + # jira:
  103 + # title: "Atlassian Jira"
  104 + # project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id"
  105 + # issues_url: "http://jira.sample/browse/:id"
  106 + # new_issue_url: "http://jira.sample/secure/CreateIssue.jspa"
  107 +
  108 + ## Gravatar
  109 + gravatar:
  110 + enabled: true # Use user avatar image from Gravatar.com (default: true)
  111 + # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm
  112 + # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm
  113 +
  114 + #
  115 + # 2. Auth settings
  116 + # ==========================
  117 +
  118 + ## LDAP settings
  119 + # You can inspect a sample of the LDAP users with login access by running:
  120 + # bundle exec rake gitlab:ldap:check RAILS_ENV=production
  121 + ldap:
  122 + enabled: false
  123 + host: '_your_ldap_server'
  124 + base: '_the_base_where_you_search_for_users'
  125 + port: 636
  126 + uid: 'sAMAccountName'
  127 + method: 'ssl' # "tls" or "ssl" or "plain"
  128 + bind_dn: '_the_full_dn_of_the_user_you_will_bind_with'
  129 + password: '_the_password_of_the_bind_user'
  130 + # If allow_username_or_email_login is enabled, GitLab will ignore everything
  131 + # after the first '@' in the LDAP username submitted by the user on login.
  132 + #
  133 + # Example:
  134 + # - the user enters 'jane.doe@example.com' and 'p@ssw0rd' as LDAP credentials;
  135 + # - GitLab queries the LDAP server with 'jane.doe' and 'p@ssw0rd'.
  136 + #
  137 + # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to
  138 + # disable this setting, because the userPrincipalName contains an '@'.
  139 + allow_username_or_email_login: true
  140 +
  141 + ## OmniAuth settings
  142 + omniauth:
  143 + # Allow login via Twitter, Google, etc. using OmniAuth providers
  144 + enabled: false
  145 +
  146 + # CAUTION!
  147 + # This allows users to login without having a user account first (default: false).
  148 + # User accounts will be created automatically when authentication was successful.
  149 + allow_single_sign_on: false
  150 + # Locks down those users until they have been cleared by the admin (default: true).
  151 + block_auto_created_users: true
  152 +
  153 + ## Auth providers
  154 + # Uncomment the following lines and fill in the data of the auth provider you want to use
  155 + # If your favorite auth provider is not listed you can use others:
  156 + # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Working-custom-omniauth-provider-configurations
  157 + # The 'app_id' and 'app_secret' parameters are always passed as the first two
  158 + # arguments, followed by optional 'args' which can be either a hash or an array.
  159 + providers:
  160 + # - { name: 'google_oauth2', app_id: 'YOUR APP ID',
  161 + # app_secret: 'YOUR APP SECRET',
  162 + # args: { access_type: 'offline', approval_prompt: '' } }
  163 + # - { name: 'twitter', app_id: 'YOUR APP ID',
  164 + # app_secret: 'YOUR APP SECRET'}
  165 + # - { name: 'github', app_id: 'YOUR APP ID',
  166 + # app_secret: 'YOUR APP SECRET',
  167 + # args: { scope: 'user:email' } }
  168 +
  169 +
  170 +
  171 + #
  172 + # 3. Advanced settings
  173 + # ==========================
  174 +
  175 + # GitLab Satellites
  176 + satellites:
  177 + # Relative paths are relative to Rails.root (default: tmp/repo_satellites/)
  178 + path: <%= node['gitlab']['gitlab-core']['satellites_path'] %>
  179 +
  180 + ## Backup settings
  181 + backup:
  182 + path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)
  183 + # keep_time: 604800 # default: 0 (forever) (in seconds)
  184 +
  185 + ## GitLab Shell settings
  186 + gitlab_shell:
  187 + path: /opt/gitlab/embedded/service/gitlab-shell/
  188 +
  189 + # REPOS_PATH MUST NOT BE A SYMLINK!!!
  190 + repos_path: <%= node['gitlab']['gitlab-core']['repositories_path'] %>
  191 + hooks_path: /opt/gitlab/embedded/service/gitlab-shell/hooks/
  192 +
  193 + # Git over HTTP
  194 + upload_pack: true
  195 + receive_pack: true
  196 +
  197 + # If you use non-standard ssh port you need to specify it
  198 + # ssh_port: 22
  199 +
  200 + ## Git settings
  201 + # CAUTION!
  202 + # Use the default values unless you really know what you are doing
  203 + git:
  204 + bin_path: /opt/gitlab/embedded/bin/git
  205 + # The next value is the maximum memory size grit can use
  206 + # Given in number of bytes per git object (e.g. a commit)
  207 + # This value can be increased if you have very large commits
  208 + max_size: 5242880 # 5.megabytes
  209 + # Git timeout to read a commit, in seconds
  210 + timeout: 10
  211 +
  212 + #
  213 + # 4. Extra customization
  214 + # ==========================
  215 +
  216 + extra:
  217 + ## Google analytics. Uncomment if you want it
  218 + # google_analytics_id: '_your_tracking_id'
  219 +
  220 + ## Text under sign-in page (Markdown enabled)
  221 + # sign_in_text: |
  222 + # ![Company Logo](http://www.companydomain.com/logo.png)
  223 + # [Learn more about CompanyName](http://www.companydomain.com/)
  224 +
  225 +development:
  226 + <<: *base
  227 +
  228 +test:
  229 + <<: *base
  230 + issues_tracker:
  231 + redmine:
  232 + title: "Redmine"
  233 + project_url: "http://redmine/projects/:issues_tracker_id"
  234 + issues_url: "http://redmine/:project_id/:issues_tracker_id/:id"
  235 + new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new"
  236 +
  237 +staging:
  238 + <<: *base
files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.example
@@ -1,238 +0,0 @@ @@ -1,238 +0,0 @@
1 -# # # # # # # # # # # # # # # # # #  
2 -# GitLab application config file #  
3 -# # # # # # # # # # # # # # # # # #  
4 -#  
5 -# How to use:  
6 -# 1. copy file as gitlab.yml  
7 -# 2. Replace gitlab -> host with your domain  
8 -# 3. Replace gitlab -> email_from  
9 -  
10 -production: &base  
11 - #  
12 - # 1. GitLab app settings  
13 - # ==========================  
14 -  
15 - ## GitLab settings  
16 - gitlab:  
17 - ## Web server settings (note: host is the FQDN, do not include http://)  
18 - host: localhost  
19 - port: 80  
20 - https: false  
21 -  
22 - # Uncomment and customize the last line to run in a non-root path  
23 - # WARNING: We recommend creating a FQDN to host GitLab in a root path instead of this.  
24 - # Note that four settings need to be changed for this to work.  
25 - # 1) In your application.rb file: config.relative_url_root = "/gitlab"  
26 - # 2) In your gitlab.yml file: relative_url_root: /gitlab  
27 - # 3) In your unicorn.rb: ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"  
28 - # 4) In ../gitlab-shell/config.yml: gitlab_url: "http://127.0.0.1/gitlab"  
29 - # To update the path, run: sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production  
30 - #  
31 - # relative_url_root: /gitlab  
32 -  
33 - # Uncomment and customize if you can't use the default user to run GitLab (default: 'git')  
34 - # user: git  
35 -  
36 - ## Email settings  
37 - # Email address used in the "From" field in mails sent by GitLab  
38 - email_from: gitlab@localhost  
39 -  
40 - # Email address of your support contact (default: same as email_from)  
41 - support_email: support@localhost  
42 -  
43 - ## User settings  
44 - default_projects_limit: 10  
45 - # default_can_create_group: false # default: true  
46 - # username_changing_enabled: false # default: true - User can change her username/namespace  
47 - ## Default theme  
48 - ## BASIC = 1  
49 - ## MARS = 2  
50 - ## MODERN = 3  
51 - ## GRAY = 4  
52 - ## COLOR = 5  
53 - # default_theme: 2 # default: 2  
54 -  
55 -  
56 - ## Users management  
57 - # default: false - Account passwords are not sent via the email if signup is enabled.  
58 - # signup_enabled: true  
59 -  
60 - # Restrict setting visibility levels for non-admin users.  
61 - # The default is to allow all levels.  
62 - #restricted_visibility_levels: [ "public" ]  
63 -  
64 - ## Automatic issue closing  
65 - # If a commit message matches this regular expression, all issues referenced from the matched text will be closed.  
66 - # This happens when the commit is pushed or merged into the default branch of a project.  
67 - # When not specified the default issue_closing_pattern as specified below will be used.  
68 - # issue_closing_pattern: '([Cc]lose[sd]|[Ff]ixe[sd]) +#\d+'  
69 -  
70 - ## Default project features settings  
71 - default_projects_features:  
72 - issues: true  
73 - merge_requests: true  
74 - wiki: true  
75 - wall: false  
76 - snippets: false  
77 - visibility_level: "private" # can be "private" | "internal" | "public"  
78 -  
79 - ## External issues trackers  
80 - issues_tracker:  
81 - # redmine:  
82 - # title: "Redmine"  
83 - # ## If not nil, link 'Issues' on project page will be replaced with this  
84 - # ## Use placeholders:  
85 - # ## :project_id - GitLab project identifier  
86 - # ## :issues_tracker_id - Project Name or Id in external issue tracker  
87 - # project_url: "http://redmine.sample/projects/:issues_tracker_id"  
88 - #  
89 - # ## If not nil, links from /#\d/ entities from commit messages will replaced with this  
90 - # ## Use placeholders:  
91 - # ## :project_id - GitLab project identifier  
92 - # ## :issues_tracker_id - Project Name or Id in external issue tracker  
93 - # ## :id - Issue id (from commit messages)  
94 - # issues_url: "http://redmine.sample/issues/:id"  
95 - #  
96 - # ## If not nil, linkis to creating new issues will be replaced with this  
97 - # ## Use placeholders:  
98 - # ## :project_id - GitLab project identifier  
99 - # ## :issues_tracker_id - Project Name or Id in external issue tracker  
100 - # new_issue_url: "http://redmine.sample/projects/:issues_tracker_id/issues/new"  
101 - #  
102 - # jira:  
103 - # title: "Atlassian Jira"  
104 - # project_url: "http://jira.sample/issues/?jql=project=:issues_tracker_id"  
105 - # issues_url: "http://jira.sample/browse/:id"  
106 - # new_issue_url: "http://jira.sample/secure/CreateIssue.jspa"  
107 -  
108 - ## Gravatar  
109 - gravatar:  
110 - enabled: true # Use user avatar image from Gravatar.com (default: true)  
111 - # plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm  
112 - # ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm  
113 -  
114 - #  
115 - # 2. Auth settings  
116 - # ==========================  
117 -  
118 - ## LDAP settings  
119 - # You can inspect a sample of the LDAP users with login access by running:  
120 - # bundle exec rake gitlab:ldap:check RAILS_ENV=production  
121 - ldap:  
122 - enabled: false  
123 - host: '_your_ldap_server'  
124 - base: '_the_base_where_you_search_for_users'  
125 - port: 636  
126 - uid: 'sAMAccountName'  
127 - method: 'ssl' # "tls" or "ssl" or "plain"  
128 - bind_dn: '_the_full_dn_of_the_user_you_will_bind_with'  
129 - password: '_the_password_of_the_bind_user'  
130 - # If allow_username_or_email_login is enabled, GitLab will ignore everything  
131 - # after the first '@' in the LDAP username submitted by the user on login.  
132 - #  
133 - # Example:  
134 - # - the user enters 'jane.doe@example.com' and 'p@ssw0rd' as LDAP credentials;  
135 - # - GitLab queries the LDAP server with 'jane.doe' and 'p@ssw0rd'.  
136 - #  
137 - # If you are using "uid: 'userPrincipalName'" on ActiveDirectory you need to  
138 - # disable this setting, because the userPrincipalName contains an '@'.  
139 - allow_username_or_email_login: true  
140 -  
141 - ## OmniAuth settings  
142 - omniauth:  
143 - # Allow login via Twitter, Google, etc. using OmniAuth providers  
144 - enabled: false  
145 -  
146 - # CAUTION!  
147 - # This allows users to login without having a user account first (default: false).  
148 - # User accounts will be created automatically when authentication was successful.  
149 - allow_single_sign_on: false  
150 - # Locks down those users until they have been cleared by the admin (default: true).  
151 - block_auto_created_users: true  
152 -  
153 - ## Auth providers  
154 - # Uncomment the following lines and fill in the data of the auth provider you want to use  
155 - # If your favorite auth provider is not listed you can use others:  
156 - # see https://github.com/gitlabhq/gitlab-public-wiki/wiki/Working-custom-omniauth-provider-configurations  
157 - # The 'app_id' and 'app_secret' parameters are always passed as the first two  
158 - # arguments, followed by optional 'args' which can be either a hash or an array.  
159 - providers:  
160 - # - { name: 'google_oauth2', app_id: 'YOUR APP ID',  
161 - # app_secret: 'YOUR APP SECRET',  
162 - # args: { access_type: 'offline', approval_prompt: '' } }  
163 - # - { name: 'twitter', app_id: 'YOUR APP ID',  
164 - # app_secret: 'YOUR APP SECRET'}  
165 - # - { name: 'github', app_id: 'YOUR APP ID',  
166 - # app_secret: 'YOUR APP SECRET',  
167 - # args: { scope: 'user:email' } }  
168 -  
169 -  
170 -  
171 - #  
172 - # 3. Advanced settings  
173 - # ==========================  
174 -  
175 - # GitLab Satellites  
176 - satellites:  
177 - # Relative paths are relative to Rails.root (default: tmp/repo_satellites/)  
178 - path: /home/git/gitlab-satellites/  
179 -  
180 - ## Backup settings  
181 - backup:  
182 - path: "tmp/backups" # Relative paths are relative to Rails.root (default: tmp/backups/)  
183 - # keep_time: 604800 # default: 0 (forever) (in seconds)  
184 -  
185 - ## GitLab Shell settings  
186 - gitlab_shell:  
187 - path: /home/git/gitlab-shell/  
188 -  
189 - # REPOS_PATH MUST NOT BE A SYMLINK!!!  
190 - repos_path: /home/git/repositories/  
191 - hooks_path: /home/git/gitlab-shell/hooks/  
192 -  
193 - # Git over HTTP  
194 - upload_pack: true  
195 - receive_pack: true  
196 -  
197 - # If you use non-standard ssh port you need to specify it  
198 - # ssh_port: 22  
199 -  
200 - ## Git settings  
201 - # CAUTION!  
202 - # Use the default values unless you really know what you are doing  
203 - git:  
204 - bin_path: /usr/bin/git  
205 - # The next value is the maximum memory size grit can use  
206 - # Given in number of bytes per git object (e.g. a commit)  
207 - # This value can be increased if you have very large commits  
208 - max_size: 5242880 # 5.megabytes  
209 - # Git timeout to read a commit, in seconds  
210 - timeout: 10  
211 -  
212 - #  
213 - # 4. Extra customization  
214 - # ==========================  
215 -  
216 - extra:  
217 - ## Google analytics. Uncomment if you want it  
218 - # google_analytics_id: '_your_tracking_id'  
219 -  
220 - ## Text under sign-in page (Markdown enabled)  
221 - # sign_in_text: |  
222 - # ![Company Logo](http://www.companydomain.com/logo.png)  
223 - # [Learn more about CompanyName](http://www.companydomain.com/)  
224 -  
225 -development:  
226 - <<: *base  
227 -  
228 -test:  
229 - <<: *base  
230 - issues_tracker:  
231 - redmine:  
232 - title: "Redmine"  
233 - project_url: "http://redmine/projects/:issues_tracker_id"  
234 - issues_url: "http://redmine/:project_id/:issues_tracker_id/:id"  
235 - new_issue_url: "http://redmine/projects/:issues_tracker_id/issues/new"  
236 -  
237 -staging:  
238 - <<: *base