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!):
- geração de website estático,
- escrito em Python,
- moderno e bem mantido,
- artigos escritos em MarkDown e
- 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.