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.