3. Instalando Plone para el entrenamiento

Tenga en cuenta que necesita una conexión rápida a Internet durante la instalación, ¡ya que tendrá que descargar una gran cantidad de datos!

Advertencia

Si siente el deseo de probar ambos métodos a continuación (con y sin Vagrant), ¡asegúrese de usar diferentes directorios training! Las dos instalaciones no coexisten bien.

Instalando Plone sin Vagrant

Advertencia

Si usted no está acostumbrado a ejecutar Plone en su computadora portátil omitir esta parte y continuar con Instalar VirtualBox.

Si usted esta experimentado con ejecutar Plone en su propio ordenador portátil, te animamos a hacerlo, ya que tendrá ciertos beneficios:

  • Usted puede usar el editor, que usted usa.

  • Puede utilizar la receta Buildout llamada omelette tener todo el código de Plone a su alcance.

  • Usted no tiene que cambiar entre diferentes del sistema operativo durante el entrenamiento.

Si se siente cómodo, por favor, trabaje en su propia máquina con su propio Python. Pero por favor asegúrese de que usted tiene un sistema que funcione, ¡ya que no queremos que pierda un tiempo valioso!

Nota

Si también desea seguir el entrenamiento de JavaScript e instalar las herramientas de desarrollo de JavaScript, necesita NodeJS instalado en su computadora de desarrollo.

Nota

Asegúrese de que su sistema esté bien preparado e instalado todos los requisitos previos necesarios. Por ejemplo, en Ubuntu / Debian, debes instalar lo siguiente:

sudo apt-get install python-setuptools python-virtualenv python-dev build-essential libssl-dev libxml2-dev libxslt1-dev libbz2-dev libjpeg62-dev
sudo apt-get install libreadline-dev wv poppler-utils
sudo apt-get install git

Para mas información o en caso de problemas, por favor ver la instrucciones instalación oficial.

Instalar Plone para el entrenamiento debe ser de esta forma si usted utiliza su propio sistema operativo (Linux o Mac):

$ mkdir training
$ cd training
$ git clone https://github.com/collective/training_buildout.git buildout
$ cd buildout
$ git checkout plone4
$ virtualenv-2.7 py27

Ahora puede ejecutar el buildout por primera vez:

$ ./py27/bin/python bootstrap.py
$ ./bin/buildout

Esto tomará algún tiempo y producir una gran cantidad de mensaje en consola de comando debido a que descarga y configura Plone. Una vez hecho esto usted puede comenzar a instancia con el siguiente comando:

$ ./bin/instance fg

La salida por la consola de comando es similar a:

2015-09-24 15:51:02 INFO ZServer HTTP server started at Thu Sep 24 15:51:02 2015
        Hostname: 0.0.0.0
        Port: 8080
2015-09-24 15:51:05 WARNING PrintingMailHost Hold on to your hats folks, I'm a-patchin'
2015-09-24 15:51:05 WARNING PrintingMailHost

******************************************************************************

Monkey patching MailHosts to print e-mails to the terminal.

This is instead of sending them.

NO MAIL WILL BE SENT FROM ZOPE AT ALL!

Turn off debug mode or remove Products.PrintingMailHost from the eggs
or remove ENABLE_PRINTING_MAILHOST from the environment variables to
return to normal e-mail sending.

See https://pypi.python.org/pypi/Products.PrintingMailHost

******************************************************************************

2015-09-24 15:51:05 INFO ZODB.blob (54391) Blob directory `.../buildout/var/blobstorage` is unused and has no layout marker set. Selected `bushy` layout.
2015-09-24 15:51:05 INFO ZODB.blob (54391) Blob temporary directory '.../buildout/var/blobstorage/tmp' does not exist. Created new directory.
2015-09-24 15:51:09 INFO Plone OpenID system packages not installed, OpenID support not available
2015-09-24 15:51:11 INFO PloneFormGen Patching plone.app.portlets ColumnPortletManagerRenderer to not catch Retry exceptions
2015-09-24 15:51:11 INFO Zope Ready to handle requests

La salida por consola debe decir INFO Zope Ready to handle requests lo cual significa su instalación esta en correctamente iniciada.

Si abre su navegador Web local en la dirección URL http://localhost:8080 se ve que Plone está ejecutando. Ahora cree un nuevo sitio Plone haciendo clic en “Crear un nuevo sitio Plone”. El nombre de usuario y la contraseña son “admin” (Nota: ¡Nunca haga esto en un sitio real!).

Ahora tiene un sitio Plone en funcionamiento y puede continuar con el siguiente capítulo. Puede detener la instancia en ejecución en cualquier momento utilizando la combinación de teclas ctrl + c.

Advertencia

Si hay un mensaje de error, usted debe bien intenta arreglarlo o utiliza la instalación Vagrant y continuar en este capítulo.

Instalando Plone sin vagrant

Para no perder demasiado tiempo con la instalación y la depuración de las diferencias entre los sistemas, utilizamos una máquina virtual (Ubuntu 14.04) para ejecutar Plone durante el entrenamiento. Contamos con Vagrant y VirtualBox para dar el mismo medio de ambiente de desarrollo para todos.

Vagrant es una herramienta para la creación de entornos de desarrollo completos. Lo usamos en conjunto con Oracle’s VirtualBox para crear y administrar un entorno virtual.

Instalar VirtualBox

Vagrant utiliza VirtualBox de Oracle para crear entornos virtuales. Aquí hay un enlace directo a la página de descarga: https://www.virtualbox.org/wiki/Downloads. Utilizamos VirtualBox 4.3.x.

Instalar y configurar Vagrant

Obtenga la última versión de https://www.vagrantup.com/downloads.html para su sistema operativo y proceda a instalarlo.

Nota

En Windows hay un error en la versión reciente de Vagrant. Aquí están las instrucciones de cómo evitar la advertencia Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.

Ahora el sistema dispone de un comando vagrant que se puede ejecutar en el terminal.

Nota

No es necesario instalar NodeJS como se mencionó en la sección anterior. Nuestra configuración Vagrant ya lo hace para usted.

En primer lugar, crear un directorio en el que desea hacer el entrenamiento.

Advertencia

Si ya tiene un directorio llamado training porque ha seguido las instrucciones de Instalación de Plone sin vagrant, debe eliminarlo, renombrarlo o usar otro nombre.

$ mkdir training
$ cd training

Configure Vagrant para instalar automáticamente los actuales guests adicionales. Usted puede optar por omitir este paso si tiene algún problema con ella.

$ vagrant plugin install vagrant-vbguest

Ahora descargue plone_training_config.zip y copie su contenido en su directorio de entrenamiento.

$ wget https://raw.githubusercontent.com/plone/training/master/_static/plone_training_config.zip
$ unzip plone_training_config.zip

El directorio del entrenamiento ahora debería contener el archivo Vagrantfile y el directorio se manifests el cual contiene a su ves muchos archivos.

Ahora empieza la configuración de la máquina virtual que se configura en el archivo Vagrantfile:

$ vagrant up

Esto toma un muuuuuy largo tiempo (entre 10 minutos y 1 hora dependiendo de su conexión a Internet y la velocidad del sistema) debido a que hace todos los pasos siguientes:

  • descarga una máquina virtual (Official Ubuntu Server 14.04 LTS, también llamado “Trusty Tahr”)

  • establece la VM

  • actualiza la VM

  • instala varios paquetes de sistema necesarios para el desarrollo de Plone

  • descargas y desempaquetar el directorio buildout-cache del instalador unificado, para obtener todos los paquetes egg para Plone

  • clona el directorio buildout training en el directorio /vagrant/buildout

  • construye Plone usando los paquetes eggs del directorio buildout-cache

Nota

A veces esto se detiene con el mensaje:

Skipping because of failed dependencies

Si esto sucede o usted tiene la sensación de que algo ha ido mal y la instalación no ha finalizado correctamente por alguna razón usted necesita ejecutar para intentar el comando siguiente para repetir el proceso. Esto sólo se repetirá los pasos que no han terminado correctamente.

$ vagrant provision

Usted puede hacer esto varias veces para arreglar los problemas, por ejemplo, si su conexión a red es limitada y los pasos no se pudieron terminar debido a esto.

Nota

Si mientras se ejecuta vagrant obtiene un error similar a:

ssh_exchange_identification: read: Connection reset by peer

Es posible que la configuración se haya estancado porque el BIOS de su equipo requiere que se habilite la virtualización. Consulte con el fabricante de su computadora sobre cómo habilitar correctamente la virtualización. Vea: https://teamtreehouse.com/community/vagrant-ssh-sshexchangeidentification-read-connection-reset-by-peer

Una vez Vagrant termina el proceso de aprovisionamiento, se puede acceder a la máquina virtual en ejecución.

$ vagrant ssh

Nota

Si usted tiene que usar Windows tendrás que iniciar sesión para con putty. Conecte a vagrant@127.0.01 en el puerto 2222. Con el usuario y contraseña son vagrant.

Ahora está iniciado con el usuario vagrant en /home/vagrant. Vamos a hacer todos los pasos del entrenamiento como este usuario.

En cambio usamos nuestra propia instancia de Plone durante el entrenamiento. Está en el directorio /vagrant/buildout/. Inicie en modo foreground con el comando ./bin/instance fg.

vagrant@training:~$ cd /vagrant/buildout
vagrant@training:/vagrant/buildout$ ./bin/instance fg
2015-09-24 15:51:02 INFO ZServer HTTP server started at Thu Sep 24 15:51:02 2015
        Hostname: 0.0.0.0
        Port: 8080
2015-09-24 15:51:05 WARNING PrintingMailHost Hold on to your hats folks, I'm a-patchin'
2015-09-24 15:51:05 WARNING PrintingMailHost

******************************************************************************

Monkey patching MailHosts to print e-mails to the terminal.

This is instead of sending them.

NO MAIL WILL BE SENT FROM ZOPE AT ALL!

Turn off debug mode or remove Products.PrintingMailHost from the eggs
or remove ENABLE_PRINTING_MAILHOST from the environment variables to
return to normal e-mail sending.

See https://pypi.python.org/pypi/Products.PrintingMailHost

******************************************************************************

2015-09-24 15:51:05 INFO ZODB.blob (54391) Blob directory `.../buildout/var/blobstorage` is unused and has no layout marker set. Selected `bushy` layout.
2015-09-24 15:51:05 INFO ZODB.blob (54391) Blob temporary directory '.../buildout/var/blobstorage/tmp' does not exist. Created new directory.
2015-09-24 15:51:09 INFO Plone OpenID system packages not installed, OpenID support not available
2015-09-24 15:51:11 INFO PloneFormGen Patching plone.app.portlets ColumnPortletManagerRenderer to not catch Retry exceptions
2015-09-24 15:51:11 INFO Zope Ready to handle requests

Nota

En raras ocasiones cuando está utilizando OSX con un juego de caracteres UTF-8, al iniciar Plone puede fallar con el siguiente error:

ValueError: unknown locale: UTF-8

En ese caso, usted tiene que poner la configuración de idioma y del teclado localizados en el archivo .bash_profile del usuario vagrant a su entorno local (como en_US.UTF-8 o de_DE.UTF-8).

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Ahora la instancia Zope que estamos usando se está ejecutando. Puede detener la instancia en ejecución en cualquier momento utilizando ctrl + c.

Si no lo hace, no se preocupe, su shell no está bloqueado. Escriba el comando reset (incluso si usted no puede ver el símbolo de sistema) y pulse la tecla RETURN, y debe ser visible otra vez.

Si abre su navegador local en http://localhost:8080 se ve que Plone está ejecutando en vagrant. Esto funciona porque Virtualbox reenvía al puerto 8080 del sistema invitado (el vagrant de Ubuntu) para el sistema host (su sistema operativo normal). Ahora cree un nuevo sitio Plone haciendo clic en “Crear un nuevo sitio Plone”. El nombre de usuario y la contraseña son “admin” (Nota: ¡Nunca haga esto en un sitio real!).

El Buildout para este Plone está en una carpeta compartida. Esto significa lo ejecutamos en la caja vagrant desde el directorio /vagrant/buildout pero también podemos acceder a este desde fuera del propio sistema operativo y el uso de nuestro editor favorito. Usted encontrará el directorio de buildout en el directorio del training que creó en el principio junto al archivo Vagrantfile y manifests.

Nota

La base de datos y los paquetes python no son accesibles en su propio sistema, ya que los archivos grandes no se puede utilizar enlaces simbólicos en los directorios compartidos. La base de datos se encuentra en /home/vagrant/var, los paquetes Python están en /home/vagrant/packages.

Si usted tiene cualquier problema o pregunta, por favor envíenos un correo electrónico a team@starzel.de o cree un ticket en https://github.com/plone/training/issues.

¿Qué hace Vagrant?

La instalación se realiza automáticamente por las herramientas vagrant y puppet. Si quieres saber qué pasos se hacen realmente, por favor, consulte el capítulo Lo qué es y lo hace Vagrant.

Nota

Atención y Manejo Vagrant

Tenga en cuenta las siguientes recomendaciones para usar sus entornos virtuales de Vagrant:

  • Utilice los siguiente comando vagrant suspend o vagrant halt para poner la virtualbox a “sleep” o “power it off” antes de intentar iniciar otra instancia de Plone en cualquier otro lugar de su máquina, si usa el mismo puerto. Eso se debe a que vagrant “reserva” el puerto 8080, e incluso si se detuvo Plone en vagrant, e indica que el puerto todavía está en uso por el sistema operativo invitado.

  • Si ha terminado con una caja vagrant, y desea eliminarla, siempre recuerde ejecutar el comando vagrant destroy en ella antes de borrar el directorio que la contiene. De lo contrario, dejará su “fantasma” en la lista de cajas administradas por vagrant y posiblemente ocupar espacio en disco en su máquina.

  • Ver vagrant help para todos las opciones de comando disponibles, incluyendo suspend, halt, destroy, up, ssh y resume.