Ir para o conteúdo

 Voltar a Documentação...
Tela cheia

Gitlab

24 de Setembro de 2015, 12:39 , por Valeria Bezerra - | Ninguém seguindo este artigo por enquanto.
Visualizado 121 vezes
      • 1Instalação da gem omniauth-remote-user no gitlab

Fazer clone do repositório omniauth-remote-user :

https://beta.softwarepublico.gov.br/gitlab/softwarepublico/omniauth-remote-user.git no path "gitlab/vendor/plugins/"

 

Adicionar a linha abaixo o Gemfile do gitlab:

gem "omniauth-remote-user", :path => "vendor/plugins/omniauth-remote-user"
no inicio app/controller/omniauth_callbacks_controler.rb adicionar: skip_before_filter :verify_authenticity_token

Editar o arquivo

gitlab/config/gitlab.yml
    1. OmniAuth settings
      omniauth:
      enabled: true
    # permitir omniauth como método de login

 allow_single_sign_on: true 

# permitir cadastro usando omniauth
block_auto_created_users: false
# não é necessario o administrador aceitar o usuário
providers:
- { name: "RemoteUser" }

# habilitando o provider remote-user
 
adicionamos o header remote_user a o user_data no nginx
/etc/nginx/conf.d/gitlab,conf
proxy_set_header REMOTE_USER "thiago";
proxy_set_header REMOTE_USER_DATA ' {"name": "thiago", "email": ""}'

agora basta restartar os serviços
sudo service nginx restart
sudo service gitlab restart

 

      • 2Personalizar gitlab antes de gerar o RPM

1) Em files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb

<% if @env_enable >
env:
enabled: <%= @env_enable %>
database_name: <%= single_quote(@env_database_name) %>
host: <%= single_quote(@env_database_host) %>
user: <%= single_quote(@env_database_user) %>
password: <%= single_quote(@env_database_password) %>
< end %>

2) em files/gitlab-cookbooks/gitlab/attributes/default.rb

default['gitlab']['gitlab-rails']['env_enable'] = false
default['gitlab']['gitlab-rails']['env_database_name'] = nil
default['gitlab']['gitlab-rails']['env_database_host'] = nil
default['gitlab']['gitlab-rails']['env_database_user'] = nil
default['gitlab']['gitlab-rails']['env_database_password'] =nil

3) Relative URL

      • Em /etc/gitlab/gitlab.rb adicionamos a linha:
        - gitlab_rails['internal_api_url'] = 'http://162.243.88.56/gitlab'
      • Em files/gitlab-cookbooks/gitlab/templates/default/gitlab.yml.erb descomentar a linha:
        - relative_url_root: /gitlab
      • Em files/gitlab-cookbooks/gitlab/templates/default/unicorn.rb.erb adicionar:
        - ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
      • Em embedded/service/gitlab-rails/config/application.rb descomentar a linha: 
        - config.relative_url_root = "/gitlab"
      • Criar links simbolico (obs: Isso não é necessário se o Nginx tratar os links estáticos do Gitlab):
        - mkdir /opt/gitlab/embedded/service/gitlab-rails/public/gitlab/
        - ln -s /opt/gitlab/embedded/service/gitlab-rails/public/assets/ /opt/gitlab/embedded/service/gitlab-rails/public/gitlab

 

          • 3Criação de RPM gitlab

            Configuração de ambiente:

            Obs: o pacote cmake deve estar instalado.

            Criação do pacote:

            • Execute o comando:
              • bin/omnibus build project gitlab

             

          • 4Configuração de hook para espelhar repositório do gitlab no github
          • Dado o projeto principal no gitlab
            e um projeto qualquer no github

            1- criar uma chave ssh publica com usuario git aonde o gitlab está instalado.

            $ su git

            e depois seguir https://help.github.com/articles/generating-ssh-keys/

            PS: Não adicionar passprhase

            2- Adicionar a chave publica ao perfil no github ( alguém com permissão de dar push no repositório).

            3- Adicionar um remote no repositório do gitlab

            $ cd /var/opt/gitlab/git-data/repositories/root/colab.git
            (nosso exemplo é um repositório git chamado colab)

            $ git remote add --mirror github :thiagovsk/teste.git
            (nosso exemplo é com meu usuário, thiagovsk)

            Verifique se foi adicionado corretamente

            $ git remote -v

            4- Adicione o hook na pasta hooks

            $ vi hooks/post-receive

            Adicione essa linha exec( 'git push --mirror github --quiet & ')

            5- Teste O mirror

            $ git push --mirror github

            Verifique se o repositório foi espelhado no github.

            6- Teste o hook

            Clone o repositorio que está no gitlab crie um commit, dê um push e veja se replicou no github.

             

          • 5Configuração do Gitlab no ambiente
          • Em /etc/gitlab/gitlab.rb

            external_url 'http://162.243.88.56'
            gitlab_rails['internal_api_url'] = 'http://127.0.0.1:8090/gitlab'

            nginx['enable'] = false
            unicorn['enable'] = true
            unicorn['port'] = 8091
            postgresql['port'] = 5433

            gitlab_rails['env_enable'] = true
            gitlab_rails['env_database_name'] = 'colab'
            gitlab_rails['env_database_host'] = '127.0.0.1'
            gitlab_rails['env_database_user'] = 'colab'
            gitlab_rails['env_database_password'] = 'colab'

            gitlab_rails['omniauth_enabled'] = true
            gitlab_rails['omniauth_allow_single_sign_on'] = true
            gitlab_rails['omniauth_block_auto_created_users'] = false

            gitlab_rails['gitlab_shell_ssh_port'] = 51122



Essa comunidade não possui posts nesse blog