Migração dos repositórios Git

Os repositórios Git que se encontravam na VM www foram todos transferidos para a VM git. Este mudança é praticamente transparente para os usuários, mas as URLs indicando os repositórios centralizados devem ser atualizadas. Para tanto, vá até o seu repositório Git e edite a linha contendo url = do arquivo .git/config, trocando o cefala.org por git.cefala.org. Por exemplo, no repositório Git deste blog, a tal linha deve ficar assim:

url = cefala-admin@git.cefala.org:blog

Por sinal, a migração do repositório Git deste blog deu um pouco de trabalho, ligado à construção automática do site web a cada git push. Anteriormente, como o servidor HTTP e o repositório estavam na mesma VM, a www, tudo era simples. Na situação atual, o web site continua sendo construído pelo Pelican a cada git push. Entretanto, isto ocorre na VM git. É necessário, assim, transferir os arquivos produzidos para a VM www.

Uma solução que foi pensada inicialmente por Hani e por mim, seria o compartilhamento de um diretório entre as duas VMs. Esta solução é realmente simples de se implementar no contexto atual, onde as duas VMs, www e git, rodam no mesmo hospedeiro KVM. Na eventualidade de migração das VMs para máquinas diferentes, esta solução teria que ser adaptada, o que resultaria em mais trabalho no futuro.

A solução mais robusta que encontrei pelo momento foi o uso de um proxy no servidor HTTP da VM www. Para que isto funcione, a VM git tem também que rodar um servidor HTTP, fornecendo as páginas produzidas pelo Pelican ao compilar este blog. Isto é feito através de um script de init (/etc/init.d/admin-blog) que roda um SimpleHTTPServer a partir do diretório do site web do blog. Como o seu nome bem diz, o SimpleHTTPServer é servidor HTTP minimalista que é, na verdade, um módulo do Python. Isto evita a instalação e a configuração de um servidor HTTP completo, como o Apache, na VM git. Para matar um passarinho, basta um estilingue, não precisamos de um caça F-16. (Vixe, com essa eu cacei briga com a Sociedade Protetora dos Animais e com o IBAMA!)

Este servidor HTTP na VM git serve apenas as páginas do blog e fica na escuta de uma porta TCP específica, cujo número eu escolhi aleatoriamente. Assim, é possível acessar o blog nesta URL: http://git.cefala.org:8367/.

O próximo passo é a configuração do proxy na VM www. Isto foi feito graças ao arquivo /etc/apache/sites-available/admin-blog.conf, que contém as linhas:

<VirtualHost *:80>
    ServerName admin.cefala.org
    <Location /blog/ >
        ProxyPass http://git.cefala.org:8367/
        ProxyPassReverse http://git.cefala.org:8367/
    </Location>
</VirtualHost>

O servidor admin.cefala.org foi recentemente adicionado ao servidor DNS e aponta para www.cefala.org. Após instalação do arquivo acima na VM www, basta rodar an2ensite. A URL pública para acessar o blog é, assim, http://admin.cefala.org/blog/.

Para não perder o vício, eu coloquei tudo sobre controle GIt, tanto o scritp init da VM git quanto a configuração Apache da VM www, além de criar um Makefile para automatizar as tarefas. Isto tudo está no diretório webserver do repositório Git deste blog.

social