Commit 413d098ae73b365194a82e18035bdbd8a02d94e1

Authored by Sergio Oliveira
2 parents dcbacf46 2718f61c

Merge branch 'gitlab_private_token' into 'master'

Gitlab private token

Create admin user in colab and gitlab to get the private token to import data from gitlab to the colab.

See merge request !27
cookbooks/colab/recipes/default.rb
@@ -53,11 +53,54 @@ template '/etc/colab/settings.d/00-database.yaml' do @@ -53,11 +53,54 @@ template '/etc/colab/settings.d/00-database.yaml' do
53 notifies :restart, 'service[colab]' 53 notifies :restart, 'service[colab]'
54 end 54 end
55 55
  56 +template '/tmp/admin-gitlab.json' do
  57 +
  58 + password = SecureRandom.random_number.to_s
  59 +
  60 + variables(
  61 + :password => password
  62 + )
  63 +end
  64 +
  65 +execute 'create-admin-token-colab' do
  66 + command "colab-admin loaddata admin-gitlab.json"
  67 +
  68 + cwd '/tmp'
  69 + user 'root'
  70 +end
  71 +
  72 +execute 'create-admin-token-gitlab' do
  73 + user = "admin-gitlab"
  74 + email = "admin-gitlab@example.com"
  75 + password = SecureRandom.random_number.to_s
  76 +
  77 + command "RAILS_ENV=production bundle exec rails runner \"User.create(name: \'#{user}\', username: \'#{user}\', email: \'#{email}\', password: \'#{password}\', admin: \'true\')\""
  78 +
  79 + user_exist = Dir.chdir '/usr/lib/gitlab' do
  80 + `RAILS_ENV=production bundle exec rails runner \"puts User.find_by_email(\'admin-gitlab@example.com\').nil?\"`.strip
  81 + end
  82 +
  83 + not_if {user_exist == "false"}
  84 +
  85 + cwd '/usr/lib/gitlab'
  86 + user 'git'
  87 +end
  88 +
56 template '/etc/colab/settings.d/01-apps.yaml' do 89 template '/etc/colab/settings.d/01-apps.yaml' do
57 owner 'root' 90 owner 'root'
58 group 'colab' 91 group 'colab'
59 mode 0640 92 mode 0640
60 notifies :restart, 'service[colab]' 93 notifies :restart, 'service[colab]'
  94 +
  95 + get_private_token = lambda do
  96 + Dir.chdir '/usr/lib/gitlab' do
  97 + `sudo -u git RAILS_ENV=production bundle exec rails runner \"puts User.find_by_email(\'admin-gitlab@example.com\').private_token\"`.strip
  98 + end
  99 + end
  100 +
  101 + variables(
  102 + :get_private_token => get_private_token
  103 + )
61 end 104 end
62 105
63 template '/etc/colab/settings.d/02-logging.yaml' do 106 template '/etc/colab/settings.d/02-logging.yaml' do
cookbooks/colab/templates/01-apps.yaml.erb
@@ -2,5 +2,6 @@ @@ -2,5 +2,6 @@
2 PROXIED_APPS: 2 PROXIED_APPS:
3 gitlab: 3 gitlab:
4 upstream: 'http://<%= node['peers']['integration'] %>:81/gitlab/' 4 upstream: 'http://<%= node['peers']['integration'] %>:81/gitlab/'
  5 + private_token: '<%= @get_private_token.call %>'
5 noosfero: 6 noosfero:
6 upstream: 'http://<%= node['peers']['social'] %>:80/social/' 7 upstream: 'http://<%= node['peers']['social'] %>:80/social/'
cookbooks/colab/templates/admin-gitlab.json.erb 0 → 100644
@@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
  1 +[
  2 + {
  3 + "model": "accounts.user",
  4 + "fields": {
  5 + "username": "admin-gitlab",
  6 + "first_name": "Admin",
  7 + "last_name": "Gitlab",
  8 + "email": "admin-gitlab@admin.com",
  9 + "password": "<%= @password %>",
  10 + "modified": "2015-06-11 14:22:00.332432+00"
  11 + }
  12 + }
  13 +]
0 \ No newline at end of file 14 \ No newline at end of file
roles/integration_server.rb
@@ -8,8 +8,8 @@ run_list *[ @@ -8,8 +8,8 @@ run_list *[
8 'recipe[mailman-api]', 8 'recipe[mailman-api]',
9 'recipe[mailman]', 9 'recipe[mailman]',
10 'recipe[mailman::webui]', 10 'recipe[mailman::webui]',
  11 + 'recipe[gitlab]',
11 'recipe[colab]', 12 'recipe[colab]',
12 'recipe[colab::nginx]', 13 'recipe[colab::nginx]',
13 - 'recipe[gitlab]',  
14 'recipe[backup]', 14 'recipe[backup]',
15 ] 15 ]