Subversion

De Gtmsl

  1. format wiki
  2. language en

Conteúdo

Configurando Servidor Subversion

  • Documento ainda em produção, se quiser alterar fique a vontade.

Muitas modificações passará este documento, portanto, não use para ambiente em produção.


Documentação para instalar um servidor _subversion_ com webdav e ssh. Toda a configuração foi feita com usuário root.

1. Instalar o pacote do subversion

#aptitude install subversion subversion-tools
#aptitude install websvn
#aptitude install libapache2-svn

Na tela de configuração do debconf, digite o repositório svn. No nosso caso o repositório svn está localizado em "/var/lib/svn"

2. Altere a permissão e dono para www-data

#chown -R www-data:www-data /var/lib/svn

3. Adicione a entrada do svn no inetd

Adicione a entrada abaixo no final do arquivo /etc/inetd.conf :


svn             stream tcp      nowait subversion /usr/bin/svnserve svnserve -i

4. Crie o repositório svn

#su - subversion
#svnadmin create /var/lib/svn

5. Altere as permissoes na pasta

#chown -R www-data:grupo /var/lib/svn/projeto__
#chmod -R 0764 /var/lib/svn/projeto__
#ln -s /var/lib/svn /svn__

OBS: O www-data é para o apache ler o diretório e grupo é o grupo que trabalhará no projeto.

6. Criar script do svn

Criar um script localizado no /usr/local/sbin/svnserver com as linhas abaixo:

umask 002
/usr/bin/svn "$@"

7. Configurar o subversion

Editar o arquivo /etc/subversion/config:

Descomentar a linha


#store-auth-creds = no

da seção [auth]

#ssh = $SVN_SSH ssh

da seção [tunnels]



Configuração do apache

1. Configurar as portas que o apacha escuta

edite o arquivo em /etc/apache2/ports.conf

Listen 80
Listen 443

2. Gerar o certificado para o servidor Apache2

#apache2-ssl-certificate

3. Configurar o sitio disponivel

= 3.1. Copie o arquivo /etc/apache2/sites-available/default para /etc/apache2/sites-available/ssl

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Edite o /etc/apache2/sites-available/ssl e acrescente


NameVirtualHost *:443
<VirtualHost *:443>
        LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
       SSLENgine On
       SSLCertificateFile /etc/apache2/ssl/apache.pem
</VirtualHost>

4. Habilite o ssl

#a2ensite ssl

5. Reinicie o Apache2

#invoke-rc.d apache2

Configurando LDAP para autenticação

1. Instalando LDAP

#aptitude install slapd migration-tools

2. Configuração do ldap cliente

Edite o /etc/ldap/ldap.conf

e configure conforme abaixo:


host 127.0.0.1
base dc=svn,dc=diadema,dc=sp,dc=gov,dc=br
rootbinddn              cn=admin,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br
pam_filter              objectclass=posixaccount
pam_login_attribute     uid
pam_member_attribute    gid
pam_password            shadow

3. Migrando a estrutura para LDAP

#cd /usr/share/migrationtools
#./migrate_base.pl > /tmp/base.ldif
#./migrate_group.pl /etc/group > /tmp/group.ldif
#./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif
#ldapadd -x -D "cn=admin,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br" -f base.ldif -W
#ldapadd -x -D "cn=admin,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br" -f group.ldif -W
#ldapadd -x -D "cn=admin,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br" -f passwd.ldif -W

4. Instalando o phpldapadmin

#aptitude install phpldapadmin

4.1 Configurar o /etc/phpldapadmin/config.php

Altera as linhas abaixos para ficar assim:


$servers[$i]['name'] = 'Servidor Exemplo';
$servers[$i]['default_hash'] = 'md5';
$servers[$i]['login_string'] = 'uid=<username>,ou=People,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br';
$servers[$i]['enable_auto_uid_numbers'] = true;
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br';
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=svn,dc=diadema,dc=sp,dc=gov,dc=br';

5. Configurando a extensão Ldap no apache

  • Edite e acrescente no /etc/php4/apache2/php.ini a extensão

extension=ldap.so

  • habilitar os módulos
#a2enmod auth_ldap dav_fs dav ldap ldap_userdir
  • Reinicie o Apache2
#invoke-rc.d apache2 restart

Autoria

Fernando Ike (fike) <fernando.ike@gmail.com>

Publicação no Wiki

Leonardo Mello <leonardo.mello@planejamento.gov.br>


Category Homepage

Ferramentas pessoais