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.