Blogar é viver

Como dizia o outro, recordar é viver. Este blog foi criado para manter a memória de que tem sido feito em termos de administração dos servidores do CEFALA. O motor que o move é o Pelican. A escolha do sistema obedeceu aos seguintes critérios (impostos por mim, é claro!):

  1. geração de website estático,
  2. escrito em Python,
  3. moderno e bem mantido,
  4. artigos escritos em MarkDown e
  5. fácil integração com Git.

A utilização é maldita de tão simples ("damn simple"):

$ git clone cefala-admin@www.cefala.org:blog
$ cd blog/website
$ editor content/meu-artigo-fantastico.md
$ git add content/meu-artigo-fantastico.md
$ git commit -m "Add my fantastic article"
$ git push

Após o git push final, o site é inteiramente reconstruído no servidor www. Como visto acima, A criação dos artigos pode ser feita inteiramente em um terminal, sem cliques de mouse, sem abrir navegadores web e, o supra sumo da perfeição, sem rodar PHP no servidor!

Bom, para ser sincero, a utilização não é tão simples assim (mas também não é tão maldita assim). Para começo de conversa, o comando git clone acima só funcionará se a sua chave pública SSH RSA estiver instalada na conta do "usuário" cefala-admin. A conta deste "usuário" não-humano no servidor www.cefala.org não permite login e está limitada a aceitar apenas o git push.

Este setup foi escolhido por várias razões. Em primeiro lugar, ele evita a criação de contas de usuários na www que terão acesso ao repositório Git centralizado. A manutenção deste repositório também fica mais simples, sem a necessidade de criação de um grupo Unix para controlar o acesso. Em segundo lugar, o acesso via chave SSH, além de ser mais seguro, é mais prático para os usuários. Cada usuário poderá ter quantas chaves quiser, uma para cada sistema do qual ele (ou ela) acessa o servidor www. Além disto, se ela (ou ele) estiver usando o ssh-agent, então, após a primeira conexão, não se precisará mais de entrar a senha da chave RSA para operações futuras (dentro de uma mesma sessão do ssh-agent, evidentemente).

Bom, para aqueles que se esqueceram, gerar uma chave RSA pública é mais fácil do que torcer pelo próprio time:

$ ssh-keygen

Em seguida, envie-me o arquivo ~/.ssh/id_rsa.pub, para que eu (ou a pessoa que esteja administrando este blog) o adicione ao arquivo authorized_keys do usuário cefala-admin. No futuro, seria interessante elaborar uma maneira de automatizar esta tarefa mas, por enquanto, vai na mão mesmo.

Nas instruções que coloquei acima, a pessoa contribuindo neste blog tem apenas que criar um novo artigo escrito em Markdown no diretório content/, comitá-lo no Git e fazer o git push. Obviamente, é interessante verificar localmente como ficará o site, antes de exportá-lo. Para tanto, comece por instalar o pacote necessário no seu sistema:

$ sudo aptitude install python-pelican

Em seguida, após editar e salvar o seu novo artigo, vá para o diretório website (de onde você vê um outro arquivo Makefile e o diretório content/) e rode os comandos seguintes:

$ make html
$ make serve

Aí, basta apontar o seu navegador para http://localhost:8000 e verificar se o trabalho ficou bem feito. Se você achar que o mundo merece ler o que você escreveu, então prossiga com o git commit e o git push.

Update: Você pode pedir para o repositório centralizado te avisar quando um push ocorrer nele. Para tanto, basta seguir as instruções.

Update: Na Debian, o pacote python-markdwon é uma dependência do pacote python-pelican. Em outras distribuições, como a Gentoo, você terá que instalar o módulo Markdown do Python manualmente. Isto ainda não é tudo para poder construir localmente o website. O nosso blog precisa de alguns plugins extras do Pelican, que são instalados como sub-módulos Git. Para simplificar a tarefa, eu criei um arquivo Makefile, que fica no diretório raiz do projeto. Logo após fazer o clone, faça isto aqui:

$ cd blog
$ make

Na verdade, ao invés do git pull, será sempre melhor lançar o comando make como acima.

social