Instalação do Gitlab e introdução ao Git

Neste tutorial vamos instalar o GitLab Community Edition (CE) - Omnibus package e aprender alguns comandos básicos do GIT.

[ Hits: 39.410 ]

Por: Leonardo Macedo Cerqueira em 24/02/2016 | Blog: http://devopslab.com.br/


Utilizando o Git



1.1. Acesse a interface Web e crie alguns usuários, grupos e um projeto.

Por exemplo:
  • Grupo: streetfighter
  • Usuários: Ryu, Chun-Li, Sagat
  • Projeto: Newgame1

1.2. Gerar uma chave ssh

A comunicação do Git com o Gitlab utiliza o protocolo SSH, portando gere uma chave ssh e copie na interface do Gitlab.

# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ryu/.ssh/id_rsa):
Created directory '/home/ryu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ryu/.ssh/id_rsa.
Your public key has been saved in /home/ryu/.ssh/id_rsa.pub.


Copie o conteúdo da chave id_rsa.pub para o Gitlab.

Logado no Gitlab vá para "Home -> Profile Setting -> SSH Keys", e copie a chave.
Linux: Instalação do Gitlab e introdução do Git
Faça isto para todos os usuários.

1.3. Configurações iniciais do Git

Logue com um dos usuários criados, por exemplo "ryu" e faça as configurações iniciais do Git, para a correta conexão com o repositório e definição do editor de texto e merge.

git config --global user.name "ryu"
$ git config --global user.email "ryu@devopslab.com.br"
$ git config --global core.editor vim
$ git config --global merge.tool vimdiff
$ git config --global color.ui true


Verificação:

git config --global --list
user.name=ryu
user.email=ryu@devopslab.com.br
core.editor=vim
merge.tool=vimdiff


1.4. Primeiro Commit

O comando "git clone" vai copiar o projeto do Gitlab para sua máquina.

git clone git@gitlab.devopslab.com.br:StreetFighter/Newgame.git
$ cd Newgame


Dentro da pasta Newgame tem uma pasta oculta ".git", dentro desta pasta está toda a estrutura de funcionamento do Git.

1.5. Primeiro arquivo

Crie o arquivo de README.md.

touch README.md
$ vi README.md

$ cat README.md

Meu primeiro projeto.
Commit 1.
Teste Git


1.6. Indexando o README.md

git add README.md

1.7. Commit

O comando "git commit" vai gravar as alterações no repositório local.

git commit -m "comentário"

$ git commit -m "criei o arquivo README com o primeiro conteúdo"

[master (root-commit) 7862fe2] comentário criei o arquivo README com o primeiro conteúdo
1 file changed, 3 insertions(+)
create mode 100644 README.md


1.8. Push

O commando "git push", sincroniza o repositório local com o Gitlab.

git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 281 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitlab.devopslab.com.br:StreetFighter/Newgame.git
* [new branch]      master -> master
Branch master set up to track remote branch master from origin.


Explicação:
  • Origin -> É o seu repositório atual, "Newgame", é o projeto que você está trabalhando.
  • Master -> É o branch master principal deste projeto.

Poderia ser outro branch, cada projeto tem um branch master, e neste branch master podem ser anexados vários branchs paralelos. Mais para frente vamos criar um branch adicional para melhor entendimento.

Por fim, logue na interface web do gitlab, vá para o projeto "Newgame", e estará registrado quem fez o commit, comentário, horário, nome do arquivo e outros metadados.

1.9. Verifique o status da sua fila:

git status
$ git log
$ git show


2.1. Criando e sincronizando um novo código.

Quem vai trabalhar agora é a Chun-Li, ela vai criar um novo recurso no projeto. Execute os passos descritos no capítulo "6.1.3 - Configurações iniciais do Git".

git clone git@gitlab.devopslab.com.br:StreetFighter/Newgame.git
$ cd Newgame.git
$ vi index.html


<html>
<header><title>projeto Newgame</title></header>
<body>
Hello world
Viva o Linux
</body>
</html>

git add index.html
$ git commit -m "Acabei de criar a home page index.html"
$ git push -u origin master


2.2. Criar um novo branch.

Branch de feature.

Acima trabalhamos no branch master no projeto "newgame", porém na reunião de Scrum surgiu uma nova necessidade, e foi adicionado uma nova feature ao sprint, então criaremos um branch de feature paralelo ao master.

Vamos criar o branch de feature com o usuário "sagat". Execute os passos descritos no capítulo "1.3. Configurações iniciais do Git".

git clone git@gitlab.devopslab.com.br:StreetFighter/Newgame.git
$ cd Newgame

$ git branch novafeature1
$ git checkout novafeature1
$ git status


2.3. Criando a nova feature

vi apiBD.py

print "Hello World!"
print "Api de busca com o Banco de dados"

Indexar e commitar.

git add apiBD.py
$ git commit -a -m 'Criei a API de integracao com o BD'

[novafeature1 9615f56] Crie a API de integracao com o BD
1 file changed, 2 insertions(+)
create mode 100644 apiBD.py


Sincronização com o branch "novafeature1":

git push -u origin novafeature1
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 382 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitlab.devopslab.com.br:StreetFighter/Newgame.git
   90f41fb..9615f56  novafeature1 -> novafeature1
Branch novafeature1 set up to track remote branch novafeature1 from origin.


Veja os 2 branchs:
Linux: Instalação do Gitlab e introdução do Git
2.4. Merge

Após criado o Branch de Feature, falta sincronizar o branch de feature com o branch master.

git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.


git merge novafeature1
Updating 90f41fb..9615f56
Fast-forward
apiBD.py | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 apiBD.py


git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To git@gitlab.devopslab.com.br:StreetFighter/Newgame.git
90f41fb..9615f56 master -> master
Linux: Instalação do Gitlab e introdução do Git
Página anterior     Próxima página

Páginas do artigo
   1. Introdução ao Git e Gitlab
   2. Instalação do GitLab
   3. Integração do LDAP
   4. Utilizando o Git
   5. Backup do Gitlab
Outros artigos deste autor

Discos Virtuais na Amazon WS - Como expandir disco EBS em servidores virtuais Amazon WS

OUTGUESS: Oculte mensagens em fotos

PHP Server Monitor - Monitore URLs e IPs

KNOCK + SSH

Instalação do Varnish + Apache + Virtual Hosts

Leitura recomendada

Instalando o Linux RedHat / Fedora / CentOS remotamente utilizando o VNC

Modificando o TimeZone: 2 métodos

Como gerenciar usuários e grupos

Habilitando e configurando Raid 1 (espelhamento) no Slackware 12

Ubuntu Lucid Lynx - Instalação mínima (mini-iso) de 13MB

  
Comentários
[1] Comentário enviado por fabio em 24/02/2016 - 10:10h

Belo artigo, parabéns!

[2] Comentário enviado por azk em 27/02/2016 - 06:12h

excelente artigo!
o git é uma ferramenta incrivelmente poderosa...

[3] Comentário enviado por removido em 03/03/2016 - 15:39h

Parabéns pelo artigo.
____________________________________________________
Manjaro Geek: http://www.manjaro-geek.org/
Fórum: http://forum.manjaro-geek.org/index.php
Freenode: #manjaro-geek

[4] Comentário enviado por lksmodos em 23/03/2016 - 15:43h

Parabéns artigo muito legal.

[5] Comentário enviado por quartodazona em 06/06/2017 - 13:36h

Excelente artigo meu amigo. Tenho pensado seriamente em integrar ao AD da empresa onde trabalho, principalmente ao ler seu artigo, porém gostaria de saber se existe alguma forma de desabilitar o acesso ao registro que fica na tela de inicio.
Obrigado.

[6] Comentário enviado por cROMADO em 06/06/2017 - 15:37h


[5] Comentário enviado por quartodazona em 06/06/2017 - 13:36h

Excelente artigo meu amigo. Tenho pensado seriamente em integrar ao AD da empresa onde trabalho, principalmente ao ler seu artigo, porém gostaria de saber se existe alguma forma de desabilitar o acesso ao registro que fica na tela de inicio.
Obrigado.


Quando você integrar o Gitlab com AD e Ldap, aquela opção de cadastro vai ficar bloqueada.
Se não for exatamente isto, deve faltar alguma opção ou coisa do tipo, mas fique tranquilo que é plenamente possível integrar o Gitlab com autenticação centralizada e bloquear o cadastro de novos usuários.

[7] Comentário enviado por quartodazona em 06/06/2017 - 20:10h


[6] Comentário enviado por cROMADO em 06/06/2017 - 15:37h


[5] Comentário enviado por quartodazona em 06/06/2017 - 13:36h

Excelente artigo meu amigo. Tenho pensado seriamente em integrar ao AD da empresa onde trabalho, principalmente ao ler seu artigo, porém gostaria de saber se existe alguma forma de desabilitar o acesso ao registro que fica na tela de inicio.
Obrigado.


Quando você integrar o Gitlab com AD e Ldap, aquela opção de cadastro vai ficar bloqueada.
Se não for exatamente isto, deve faltar alguma opção ou coisa do tipo, mas fique tranquilo que é plenamente possível integrar o Gitlab com autenticação centralizada e bloquear o cadastro de novos usuários.

Mas estou com dificuldade em integrar no AD, está dando que minhas credenciais não funcionam.

Minha configuração:

gitlab_rails['ldap_enabled'] = true

###! **remember to close this block with 'EOS' below**
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: 'winserver.empresa.complemento'
port: 389
uid: 'sAMAccountName'
method: 'plain' # "tls" or "ssl" or "plain"
bind_dn: 'CN=meu_usuario_admin_do_ad,CN=Users,DC=empresa,DC=complemento'
password: 'minha_senha'
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'OU=PASTA1,OU=PASTA2_DENTRO_DA_PASTA1,OU=PASTA3_DENTRO_DE_PASTA2,DC=empresa,DC=complemento'
# user_filter: ''
attributes:
username: ['uid', 'userid', 'sAMAccountName']
email: ['mail', 'email', 'userPrincipalName']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'
EOS

Já tentei colocar o ip do servidor e o escambau. Tive de colocar estes 3 níveis de pasta para identificar meu usuário no AD porque é assim que está configurado no AD, com três níveis de diretórios até chegar no que contém os usuários.

Você consegue me ajudar?

Obrigado.

[8] Comentário enviado por quartodazona em 08/06/2017 - 17:27h


Você consegue me ajudar?

Obrigado.


Já consegui resolver e até escrevi um post sobre isso.

https://mastigado.wordpress.com/2017/06/08/integrando-o-gitlab-no-active-directory-ldap/

Muito obrigado pela atenção.


[9] Comentário enviado por ederwyk em 19/01/2018 - 17:31h

?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts