CMS Plone 4.1.6 com invólucro Virtualenv + Buildout + Mount Point + BLOB Storage + Unicode UTF-8

O Plone está entre os CMS com menor índice de falhas de segurança, possui várias funcionalidades e técnicas que podem ser comparadas com outros CMS.

[ Hits: 19.087 ]

Por: Ricardo Brito do Nascimento em 06/08/2012 | Blog: http://brito.blog.incolume.com.br


PZP - Virtualenv - Buildout



Instalação do PZP

Nesta etapa, cria-se o invólucro completamente independente do sistema operacional, para que o ambiente não sofra quebra de configuração devido às atualizações de segurança, ou afins.

O invólucro "/opt/p416", conterá todos os programas necessários para funcionamento do ambiente PZP, incluindo zlib, JPEG, Python e as demais dependências.

Baixe e descompacte, primeiramente, o Plone-4.1.6-UnifiedInstaller:

# wget https://launchpad.net/plone/4.1/4.1.6/+download/Plone-4.1.6-UnifiedInstaller-20120708.tgz
# tar xvzf ~/Downloads/Plone-4.1.6-UnifiedInstaller-20120708.tgz -C /tmp/
# cd /tmp/Plone-4.1.6-UnifiedInstaller
# ./install.sh zeo --zlib=local --jpeg=local --user=admin --password=admin --target=/opt/p416 --clients=4 --instance=modelo


As opções do comando install.sh, informam que a instalação é modo zeo, sendo que as bibliotecas "zlib" e "jpeg", serão locais, o usuário admin e senha admin, no diretório "/opt/p416", com 4 clientes zope e o nome do cluster modelo.

Virtualenv

Nesta etapa, instala-se o ambiente virtual, do inglês Virtual Environment, sob acrônimo Virtualenv.

O Virtualenv possibilita a utilização de um encapsulamento de subinstâncias Python, que permite a total personalização, sem a modificação da instalação principal.

O ambiente Plone a partir da versão 3, já vem disponibilizado o easy_install, que é instalador para módulos Python, o qual será usado neste artigo.

# cd /opt/p416/
# ./Python-2.6/bin/easy_install virtualenv


Para melhor entendimento, com a finalidade de organização, o diretório app (applications), conterá todos os ambientes criados.

Agora, cria-se o ambiente virtual, da seguinte forma:

# ./Python-2.6/bin/virtualenv app/env001

Buildout

Buildout é uma ferramenta Open Source de construção de softwares, desenvolvida utilizando-se da linguagem de programação Python, para fornecer suporte à criação de instâncias de aplicações, principalmente àquelas escritas em Python.

O Buildout fornece ferramentas para criação de aplicações através segmentos, denominados parts, que podem ser módulos Python, servidores Web, servidores de aplicação e qualquer elemento de aplicação para infraestrutura.

Há como configurar o buildout para utilizar os arquivos de configuração diretamente pela Web, mas deste artigo, usaremos o modelo da própria estrutura do invólucro.

# cp -vf modelo/*.{py,cfg} app/env001/

Os seguintes arquivos serão copiados:
  • modelo/bootstrap.py
  • modelo/base.cfg
  • modelo/buildout.cfg
  • modelo/develop.cfg
  • modelo/lxml_static.cfg
  • modelo/versions.cfg
  • modelo/zopeapp-versions.cfg
  • modelo/zope-versions.cfg
  • modelo/ztk-versions.cfg

Configuração:

# cd app/env001/
# vim buildout.cfg


Para personalizar as portas, localize o trecho a seguir, no arquivo buildout.cfg:
# Ports
# -----
# Specify the ports on which your Zope installation
# will listen.
# ZEO Server
zeo-address = 127.0.0.1:8100
# Zope client 1
http-address = 8080
# Additional clients:
client2-address = 8081


E modifique para as portas desejadas, tal como exemplo, zeo aceitando apenas conexões locais na porta 8100, e os clientes zope, rodando nas portas 8101 e 8102 respectivamente.

# Ports
# -----
# Specify the ports on which your Zope installation
# will listen.
# ZEO Server

zeo-address = 127.0.0.1:8100
# Zope client 1
http-address = 8101
# Additional clients:
client2-address = 8102


No Plone 4, também faz-se necessário modificar algumas permissões, e criar alguns diretórios para o bom funcionamento do ambiente.

Façamos pelo buildout, no arquivo base.cfg.

[chown-zeo]
# This recipe is used to set permissions for root mode installs
# For options see http://pypi.python.org/pypi/plone.recipe.command

recipe = plone.recipe.command
command =
echo Dummy references to force this to execute after referenced parts
echo ${backup:location} ${unifiedinstaller:sudo-command}
chmod 600 .installed.cfg
touch ${buildout:directory}/var/zeoserver/zeoserver.log
find ${buildout:directory}/var -type d -exec chmod 700 {} \;
chmod 744 ${buildout:directory}/bin/*
update-command = ${chown-zeo:command}


Acrescente o trecho que compreende as linhas 109 a 111, como abaixo:

[chown-zeo]

chmod 744 ${buildout:directory}/bin/*
chmod 755 ${buildout:directory}/bin/python
mkdir -pm 755 ${buildout:directory}/{products,src}
chown -R ${buildout:effective-user} ${buildout:directory}/var
update-command = ${chown-zeo:command}


Instalação

Considerando que esteja no diretório /opt/p416/app/env001/, execute os comandos abaixo:

# mkdir -pv ../buildout-cache/{eggs,downloads}
# export http_proxy=http://10.1.101.101:8080


Obs.: Se houver proxy na rede, coloque o IP e porta do proxy

# ./bin/python bootstrap.py

A etapa três pode ser substituída por:

# cp -va /opt/p416/buildout-cache/ /opt/p416

Ou:

# ln -sv /opt/p416/buildout-cache/ /opt/p416

O objetivo desta substituição, é simplificar o processo de download dos módulos eggs, que já foram baixados quando o modelo foi criado.

* Lembrando que, é opcional a substituição, restando para tanto, o novo downloads dos módulos eggs.

# ./bin/buildout -v -t 30

Onde:
  • -v : Incrementa o nível de detalhamento;
  • -t 30 : Define o timeout em 30s para cada repositório.

Faz-se necessário executar o comando:

# ./bin/buildout

...Para cada atualização realizada no ambiente.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução - Escopo - Dependências
   2. PZP - Virtualenv - Buildout
   3. Mount point
   4. BLOB Storage
   5. Desfecho, arquivos fontes e referências
Outros artigos deste autor

Configurando proxy no shell

Proteção utilizando fail2ban contra ataques do tipo

Explorando o wget

Formatando exibição de datas no Linux

Conexão com chaves assimétricas sem uso de senha em servidor sshd

Leitura recomendada

Introdução ao Python (parte 2)

Utilizando as bibliotecas do Java usando o Jython

Gerenciando registros em banco de dados com Zope

Utilizando o Python como calculadora

Instalando um servidor Zope/Plone

  
Comentários
[1] Comentário enviado por rony_souza em 08/08/2012 - 15:56h

Muito bom o artigo, parece ser uma ótima ferramenta.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts