Commit 759e31b2b8f51e8e61b7c1c13a58ca975f185461
Exists in
master
and in
17 other branches
Merge branch 'rename_library' into 'master'
Rename Library Fixes #24
Showing
3 changed files
with
88 additions
and
88 deletions
Show diff stats
files/gitlab-cookbooks/gitlab/libraries/chef_server.rb
| ... | ... | @@ -1,85 +0,0 @@ |
| 1 | -# | |
| 2 | -# Copyright:: Copyright (c) 2012 Opscode, Inc. | |
| 3 | -# License:: Apache License, Version 2.0 | |
| 4 | -# | |
| 5 | -# Licensed under the Apache License, Version 2.0 (the "License"); | |
| 6 | -# you may not use this file except in compliance with the License. | |
| 7 | -# You may obtain a copy of the License at | |
| 8 | -# | |
| 9 | -# http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | -# | |
| 11 | -# Unless required by applicable law or agreed to in writing, software | |
| 12 | -# distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | -# See the License for the specific language governing permissions and | |
| 15 | -# limitations under the License. | |
| 16 | -# | |
| 17 | - | |
| 18 | -require 'mixlib/config' | |
| 19 | -require 'chef/mash' | |
| 20 | -require 'chef/json_compat' | |
| 21 | -require 'chef/mixin/deep_merge' | |
| 22 | -require 'securerandom' | |
| 23 | - | |
| 24 | -module GitLab | |
| 25 | - extend(Mixlib::Config) | |
| 26 | - | |
| 27 | - bootstrap Mash.new | |
| 28 | - postgresql Mash.new | |
| 29 | - redis Mash.new | |
| 30 | - node nil | |
| 31 | - | |
| 32 | - class << self | |
| 33 | - | |
| 34 | - # guards against creating secrets on non-bootstrap node | |
| 35 | - def generate_hex(chars) | |
| 36 | - SecureRandom.hex(chars) | |
| 37 | - end | |
| 38 | - | |
| 39 | - def generate_secrets(node_name) | |
| 40 | - existing_secrets ||= Hash.new | |
| 41 | - if File.exists?("/etc/gitlab/gitlab-secrets.json") | |
| 42 | - existing_secrets = Chef::JSONCompat.from_json(File.read("/etc/gitlab/gitlab-secrets.json")) | |
| 43 | - end | |
| 44 | - existing_secrets.each do |k, v| | |
| 45 | - v.each do |pk, p| | |
| 46 | - GitLab[k][pk] = p | |
| 47 | - end | |
| 48 | - end | |
| 49 | - | |
| 50 | - GitLab['postgresql']['sql_password'] ||= generate_hex(50) | |
| 51 | - | |
| 52 | - if File.directory?("/etc/gitlab") | |
| 53 | - File.open("/etc/gitlab/gitlab-secrets.json", "w") do |f| | |
| 54 | - f.puts( | |
| 55 | - Chef::JSONCompat.to_json_pretty({ | |
| 56 | - 'postgresql' => { | |
| 57 | - 'sql_password' => GitLab['postgresql']['sql_password'], | |
| 58 | - }, | |
| 59 | - }) | |
| 60 | - ) | |
| 61 | - system("chmod 0600 /etc/gitlab/gitlab-secrets.json") | |
| 62 | - end | |
| 63 | - end | |
| 64 | - end | |
| 65 | - | |
| 66 | - def generate_hash | |
| 67 | - results = { "gitlab" => {} } | |
| 68 | - [ | |
| 69 | - "bootstrap", | |
| 70 | - "redis", | |
| 71 | - "postgresql" | |
| 72 | - ].each do |key| | |
| 73 | - rkey = key.gsub('_', '-') | |
| 74 | - results['gitlab'][rkey] = GitLab[key] | |
| 75 | - end | |
| 76 | - | |
| 77 | - results | |
| 78 | - end | |
| 79 | - | |
| 80 | - def generate_config(node_name) | |
| 81 | - generate_secrets(node_name) | |
| 82 | - generate_hash | |
| 83 | - end | |
| 84 | - end | |
| 85 | -end |
| ... | ... | @@ -0,0 +1,85 @@ |
| 1 | +# | |
| 2 | +# Copyright:: Copyright (c) 2012 Opscode, Inc. | |
| 3 | +# License:: Apache License, Version 2.0 | |
| 4 | +# | |
| 5 | +# Licensed under the Apache License, Version 2.0 (the "License"); | |
| 6 | +# you may not use this file except in compliance with the License. | |
| 7 | +# You may obtain a copy of the License at | |
| 8 | +# | |
| 9 | +# http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | +# | |
| 11 | +# Unless required by applicable law or agreed to in writing, software | |
| 12 | +# distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | +# See the License for the specific language governing permissions and | |
| 15 | +# limitations under the License. | |
| 16 | +# | |
| 17 | + | |
| 18 | +require 'mixlib/config' | |
| 19 | +require 'chef/mash' | |
| 20 | +require 'chef/json_compat' | |
| 21 | +require 'chef/mixin/deep_merge' | |
| 22 | +require 'securerandom' | |
| 23 | + | |
| 24 | +module Gitlab | |
| 25 | + extend(Mixlib::Config) | |
| 26 | + | |
| 27 | + bootstrap Mash.new | |
| 28 | + postgresql Mash.new | |
| 29 | + redis Mash.new | |
| 30 | + node nil | |
| 31 | + | |
| 32 | + class << self | |
| 33 | + | |
| 34 | + # guards against creating secrets on non-bootstrap node | |
| 35 | + def generate_hex(chars) | |
| 36 | + SecureRandom.hex(chars) | |
| 37 | + end | |
| 38 | + | |
| 39 | + def generate_secrets(node_name) | |
| 40 | + existing_secrets ||= Hash.new | |
| 41 | + if File.exists?("/etc/gitlab/gitlab-secrets.json") | |
| 42 | + existing_secrets = Chef::JSONCompat.from_json(File.read("/etc/gitlab/gitlab-secrets.json")) | |
| 43 | + end | |
| 44 | + existing_secrets.each do |k, v| | |
| 45 | + v.each do |pk, p| | |
| 46 | + Gitlab[k][pk] = p | |
| 47 | + end | |
| 48 | + end | |
| 49 | + | |
| 50 | + Gitlab['postgresql']['sql_password'] ||= generate_hex(50) | |
| 51 | + | |
| 52 | + if File.directory?("/etc/gitlab") | |
| 53 | + File.open("/etc/gitlab/gitlab-secrets.json", "w") do |f| | |
| 54 | + f.puts( | |
| 55 | + Chef::JSONCompat.to_json_pretty({ | |
| 56 | + 'postgresql' => { | |
| 57 | + 'sql_password' => Gitlab['postgresql']['sql_password'], | |
| 58 | + }, | |
| 59 | + }) | |
| 60 | + ) | |
| 61 | + system("chmod 0600 /etc/gitlab/gitlab-secrets.json") | |
| 62 | + end | |
| 63 | + end | |
| 64 | + end | |
| 65 | + | |
| 66 | + def generate_hash | |
| 67 | + results = { "gitlab" => {} } | |
| 68 | + [ | |
| 69 | + "bootstrap", | |
| 70 | + "redis", | |
| 71 | + "postgresql" | |
| 72 | + ].each do |key| | |
| 73 | + rkey = key.gsub('_', '-') | |
| 74 | + results['gitlab'][rkey] = Gitlab[key] | |
| 75 | + end | |
| 76 | + | |
| 77 | + results | |
| 78 | + end | |
| 79 | + | |
| 80 | + def generate_config(node_name) | |
| 81 | + generate_secrets(node_name) | |
| 82 | + generate_hash | |
| 83 | + end | |
| 84 | + end | |
| 85 | +end | ... | ... |
files/gitlab-cookbooks/gitlab/recipes/default.rb
| ... | ... | @@ -26,11 +26,11 @@ directory "/etc/gitlab" do |
| 26 | 26 | action :nothing |
| 27 | 27 | end.run_action(:create) |
| 28 | 28 | |
| 29 | -GitLab[:node] = node | |
| 29 | +Gitlab[:node] = node | |
| 30 | 30 | if File.exists?("/etc/gitlab/gitlab.rb") |
| 31 | - GitLab.from_file("/etc/gitlab/gitlab.rb") | |
| 31 | + Gitlab.from_file("/etc/gitlab/gitlab.rb") | |
| 32 | 32 | end |
| 33 | -node.consume_attributes(GitLab.generate_config(node['fqdn'])) | |
| 33 | +node.consume_attributes(Gitlab.generate_config(node['fqdn'])) | |
| 34 | 34 | |
| 35 | 35 | if File.exists?("/var/opt/gitlab/bootstrapped") |
| 36 | 36 | node.set['gitlab']['bootstrap']['enable'] = false | ... | ... |