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.035 ]

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

Instalação Plone 2.5.5 com módulos customizados

Proteção utilizando fail2ban contra ataques do tipo

Encapsulamento de Apache com chroot

Explorando o wget

Vim com corretor ortográfico em pt_BR/es_ES/en_US

Leitura recomendada

Gerenciando registros em banco de dados com Zope

Instalação Plone 2.5.5 com módulos customizados

ZPT - Zope Pages Templates

Utilizando o Python como calculadora

Introdução ao Python (parte 2)

  
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