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.