Controle de versões com Subversion + WebSVN + Apache2 + LDAP
Para este processo, levamos em consideração que o Apache2 com suporte a PHP já está instalado. Caso precise revisar sua instalação, use Instalando e configurando Apache2 com suporte PHP.
Instalando pacotes necessários
root@debian:~# aptitude install subversion subversion-tools libapache2-svn
Ajustando o Apache2
Nesta etapa, iremos ajustar o apache2 para que o mesmo possa se integrar com o websvn e para que possa ser gerenciado por meio do script que mostraremos adiante.
root@debian:~# mkdir /srv/svn root@debian:~# mkdir /etc/apache2/svn root@debian:~# cd /etc/apache2/ root@debian:~# vi mods-available/dav_svn.conf # Include the SVN projects Include /etc/apache2/svn/
root@debian:~# a2enmod dav_svn
Em por fim reinicie o apache
root@debian:~# /etc/init.d/apache2 stop root@debian:~# /etc/init.d/apache2 start
Ajustando o WebSVN
Primeiramente amos instalar os pacotes.
root@debian:~# aptitude install enscript websvn Você quer configurar o WebSVN agora? <Sim> Configuração do Apache: [*] apache2 repositórios de svn: /srv/svn repostórios de svn: <deixe em branco> Nota sobre permissões: <Ok>
O arquivo de configuração deve estar assim:
root@debian:~# vi /etc/websvn/svn_deb_conf.inc <?php // please edit /etc/websvn/config.inc // or use dpkg-reconfigure websvn $config->parentPath("/srv/svn"); $config->setEnscriptPath("/usr/bin"); $config->setSedPath("/bin"); $config->useEnscript(); ?>
Para acessar, utilize:
http://endereco_do_seu_servidor_svn/websvn
Gerenciando os repositórios
Para gerenciar os meus repositórios, criei um script que realiza o gerenciamento de maneira mais facilitada, gerenciando os repositórios via console por meio de shell scripts. O script poderá ser baixado em http://downloads.fabriciovc.eti.br/svn/.
Após baixá-lo no sistema, altere as permissões do mesmo para que tenha permissão de execução …
root@debian:~# chmod +x /caminho/do/seu/script/svnadmin.sh
E apenas o execute. Ele é auto explicativo.
root@debian:~# /caminho/do/seu/script/svnadmin.sh
Integrando o SVN com LDAP
Primeiramente habilite o módulo no apache2.
root@debian:~# a2enmod authnz_ldap
Em seguida, devemos usar outro script para gerenciar nosso SVN.
O script poderá ser baixado em http://downloads.fabriciovc.eti.br/svn/.
Antes de utilizá-lo, é necessário realizar algumas configurações neste script.
root@debian:~# vi /caminho/do/seu/script/svnldapadmin.sh [...] AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL ldap://IP_SERVIDOR_LDAP/ou=dominio,dc=com,dc=br?uid Require valid-user #Require user usuario01 usuario02 usuario03 [...]
Caso deseje realizar a autenticação no Active Directory (AD), use as configurações a seguir:
root@debian:~# vi /caminho/do/seu/script/svnldapadmin.sh [...] AuthLDAPBindDN CN=Administrator,DC=dominio,DC=com,DC=br AuthLDAPBindPassword senha_usuario_Administrator AuthLDAPURL ldap://IP_SERVIDOR_LDAP:389/DC=dominio,DC=com,DC=br?sAMAccountName?sub?(objectClass=*) AuthType Basic AuthName "Repositorio AUTH" AuthBasicProvider ldap require valid-user AuthUserFile /dev/null [...]
Finalizada as alterações, salve o arquivo e altere as permissões do mesmo para que tenha permissão de execução …
root@debian:~# chmod +x /caminho/do/seu/script/svnldapadmin.sh
E apenas o execute. Ele é auto explicativo.
root@debian:~# /caminho/do/seu/script/svnldapadmin.sh