Instalando o git (utilizando o gitosis)

Há várias formas para começar usar um servidor git. Dentre elas podemos citar:

É possível apenas instalar o git em um servidor e colocar os repositórios em pastas públicas do servidor.

Outra possibilidade é hospedar utilizando algum serviço web como por exemplo github e o gitorious

O Gitorious pode ser instalado em um servidor próprio como mostrado no tutorial do Akita

Outro modo bem rápido de se instalar o servidor git, utilizando ssh é através do Gitosis.

Segui o tutorial em http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way e não tive problemas na instalação. E é este artigo que segui como base para fazer este post.

Fiz a instalação no ubuntu e o que fiz foi:

Primeiramente voce deve ter o git instalado no seu servidor. Caso não tenha basta utilizar o apt para instalar

sudo apt-get install git-core

Após instalado o git, deve-se baixar o gitosis.

git clone git://eagain.net/gitosis.git 

Depois de baixar o gitosis deve-se instalá-lo, para isto:


cd gitosis
python setup.py install

Caso receba uma mensagem como:

-bash: python: command not found

ou

Traceback (most recent call last):
File "setup.py", line 2, in ?
from setuptools import setup, find_packages
ImportError: No module named setuptools

Estas mensagens ocorrem porque voce não tem o pacote python-setuptools instalado. Para instalá-los basta:

sudo apt-get install python-setuptools

Após instalado o pacote python-setuptools execute a instalação do gitosis novamente.

Com o gitosis instalado, agora voce deve criar um usuário para o git. O usuário que o autor recomenda é o usuário git, sem password válido, e ele pode ser criado com o comando:

sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git

Se a criação do usuário foi feita com sucesso, deve aparecer algo como:

Adding system user `git'...
Adding new group `git' (211).
Adding new user `git' (211) with group `git'.
Creating home directory `/home/git'.

Após criado o usuário no servidor, é necessário criar uma chave rsa no seu computador. Para isto utilizamos o ssh-keygen e o comando para criar uma chave rsa é (digitado no seu computador):

ssh-keygen -t rsa

Após executado o comando a chave pública e privada são criadas em ~/.ssh

Para copiar a chave gerada para o servidor podemos utilizar o comando abaixo:

scp .ssh/id_rsa.pub git@ENDERECO DO SERVIDOR:/tmp

No servidor, para iniciar o servidor basta digitar:

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

É necessário ter permissão no arquivo post-update, portanto digite:

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

Agora em sua máquina execute:

git clone git@ENDEREÇO DO SERVIDOR:gitosis-admin.git
cd gitosis-admin

No diretório gitosis-admin haverá um arquivo chamado gitosis.conf que será utilizado para a configuração do gitosis.

Adicionando um novo projeto

Para se adicionar um novo projeto adicione as linhas no gitosis.conf com as informações do seu novo projeto:


[group meu_time]
members = nome_do_usuario
writable = nome_novo_projeto

Deste modo, voce criará permissão para o usuário no seu novo projeto

Após alterado o arquivo gitosis.conf dê commit nele para o servidor:

git commit -a -m "Permissão de acesso ao novo projeto para o usuário"
git push

Agora deve-se criar o repositório e enviá-lo:


mkdir nome_novo_projeto

cd nome_novo_projeto
git init
git remote add origin git@NOME_SERVIDOR:nome_novo_projeto.git

#Adicione arquivos e dê commits (git add, git commit)

git push origin master:refs/heads/master


Adicionando usuários

Para adicionar usuários, deve-se copiar as chaves públicas para o diretório gitosis-admin/keydir


cd gitosis-adimn
cp ~/jose.pub keydir/
cp ~/maria.pub keydir/
git add keydir/jose.pub keydir/maria.pub

no arquivo gitosis.conf adicione:

[group meu_time]
members = nome_do_usuario maria joao
writable = novo_projeto

Dê commit e push:

git commit -a -m "Adicionar permissão à Maria e João ao novo projeto"

Agora Maria e João têm acesso ao novo_projeto.

No windows:

Para adicionar as chaves no windows, criei as chaves utilizando o ssh-keygen no mac
(Lembre-se que ao gerar a chave em outro computador, voce deve editar a chave pública e alterar o usuário pois a chave será gerada para o usuário que está logado no computador que a chave for gerada)

ssh-keygen -t dsa -f

Depois copie para a pasta “c:\Documents and Settings\\.ssh” com os nomes “id_dsa” e “id_dsa.pub”

Utilizando o ssh em outras portas

Para se utilizar o ssh em outras portas deve-se alterar o arquivo ~/.ssh/config

Host meuservidor.com
  Port 1234

1 comment so far ↓

#1 andre fonseca on 10.23.08 at 7:00 am

cade o dito techtalk sobre o git? A equipe está no aguardo :)

Leave a Comment