Despliegue de aplicaciones Python usando
               VirtualEnv
          Virtualenv - Pip - Fabric


          Oscar Javier Moreno Rey

             Campus Party Colombia


            23 de junio de 2011
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Contenidos

  1    Algunos requerimientos en el despliegue de aplicaciones.

  2    Una buena soluci´n (Virtualenv).
                       o

  3    Usando Virtualenvwrapper.

  4    Gesti´n de paquetes Python mediante Pip.
            o

  5    Ejecuci´n de tareas sobre SSH con Fabric.
              o

  6    Herramientas utilizadas como apoyo.


                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Algunos problemas comunes


  Al llevar a cabo las tareas de despliegue y mantenimiento de
  aplicaciones nos encontramos con los siguientes inconvenientes:

          Las aplicaciones requieren componentes con versiones
          espec´
               ıficas.
          Se necesita mantener la aplicaci´n en la versi´n estable sin
                                          o             o
          tocar sus componentes.
          En el hosting compartido no se tienen permisos suficientes
          para actualizar o instalar dependencias de mi aplicaci´n.
                                                                o




                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Virtualenv


  Una buena soluci´n!
                  o
  Creaci´n y manejo de entornos virtuales usando Virtualenv.
        o

  ¿Qu´ es virtualenv?
     e
      Herramienta para crear entornos independientes en Python.
          Sucesor de Workingenv.
          Puede trabajar con setuptools o distribute.




                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Virtualenv

  Instalaci´n
           o
  En distribuci´nes GNU/Linux tipo Debian basta con:
               o

           $ sudo apt-get install python-virtualenv


  Creando un entorno virtual
  Se crea un entorno virtual llamado “test” con distribute y no hace
  uso de los paquetes globales de Python:

           $ virtualenv --distribute --no-site-packages test



                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Virtualenv

  Estructura
  La estructura de directorios para “test” es la siguiente:

                   test/
                   |- bin/
                   |- include/
                   |- lib/


  Activando y desactivando el entorno
           $ source bin/activate
           $ deactivate


                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Virtualenvwrapper


  ¿Qu´ es virtualenvwrapper?
      e
  Es una extensi´n de virtualenv que permite manejar de forma m´s
                o                                              a
  amable varios entornos virtuales en un servidor.

  Instalaci´n
           o
  En una distribuci´n GNU/Linux tipo Debian se puede instalar
                   o
  desde los repositorios:

           # apt-get install virtualenvwrapper




                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Virtualenvwrapper



  Configuraci´n
             o
  Es necesario definir el directorio que alojar´ los entornos virtuales
                                              a
  adem´s del fichero que contiene las diferentes funciones de
        a
  virtualenvwrapper. Se puede definir dentro del fichero .bashrc as´   ı:

                   export WORKON_HOME=$HOME/.virtualenvs
                   source /path/to/bin/virtualenvwrapper.sh




                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Virtualenvwrapper

  Manejando entornos virtuales
  Comandos de utilidad:
          mkvirtualenv: Creaci´n de entornos virtuales.
                              o
          mkvirtualenv --distribute --no-site-packages test
          workon: Activaci´n de entornos virtuales.
                          o
          workon test
          rmvirtualenv: Eliminaci´n de entornos virtuales.
                                 o
          rmvirtualenv test
          deactivate: Desactiva entorno virtual.


                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Gesti´n de paquetes Python mediante Pip
     o


  ¿Qu´ es Pip?
     e
      Es una herramienta que permite instalar, actualizar o eliminar
      paquetes Python.
      Creado como fork a partir de easy install con mejoras como:
                   Prevenci´n contra instalaciones parciales descargando en su
                            o
                   totalidad el paquete escogido.
                   Menjsajes de error m´s claros.
                                        a
                   Desinstalaci´n de paquetes.
                                o
                   Soporte nativo para Git, Mercurial y Bazaar.
          Permite trabajar con setuptools o distribute.



                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Pip

  Introducci´n a Pip
            o
  Algunas opciones utiles para usar Pip son:
                    ´
          search: Permite buscar dentro del listado de paquetes alguno
          en especial.
          install: Permite instalar o actualizar los paquetes
          seleccionados.
                   install -r: Permite instalar paquetes listados en un fichero.
                   install -e: Permite instalar paquetes desde una URL.
                   install –upgrade: Lleva a cabo la actualizaci´n de un paquete.
                                                                  o
          uninstall: Elimina el paquete especificado.
          freeze: Muestra el listado de paquetes instalados con sus
          versiones exactas.

                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Pip

  Usando Pip con Virtualenv
      Cada vez que se crea un entorno virtual, una copia de Pip es
      almacenada en ´ste.
                     e
          Los paquetes instalados son almacenados en el directorio local
          “lib”, dentro del entorno virtual.
          Es necesario tener instaladas librer´ de desarrollo en el S. O.
                                              ıas
          para la correcta instalaci´n de algunos paquetes.
                                    o

  Ejemplo
  Instalaci´n de xmlrpclib.
           o


                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Usando Pip

  Definici´n de fichero requiements.txt.
         o
  El fichero que almacena el listado de dependencias deber´ tener
                                                         a
  una estructura similar a la siguiente:
         #Definici´n de paquetes congelados en la versi´n X.X.
                  o                                    o
         xmlrpclib==1.0.1
         ipython==0.10.2
         #Definici´n de paquetes descargados de una URL con git.
                  o
         -e git+https://github.com/django/django.git#egg=Package


  El anterior listado puede ser instalado mediante la opci´n “-r”.
                                                          o
         pip install -r requirementes.txt



                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Ejecuci´n de tareas sobre SSH con Fabric
       o
  ¿Qu´ es Fabric?
     e
      Es una herramienta escrita en Python que permite ejecutar
      comandos via SSH en varios hosts.
          Ejecuta comandos v´ sudo o como usuario normal.
                            ıs
          Se obtiene la salida interactiva del resultado en cada ejecuci´n.
                                                                        o

  Instalaci´n
           o
  Puede ser instalado a trav´s de Pip o easy install.
                            e

                   pip install fabric
                   o
                   ´
                   easy_install fabric

                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Ejecuci´n de tareas sobre SSH con Fabric
       o
  Instalaci´n
           o
  Tambi´n es posible obener la versi´n de desarrollo descargando el
         e                           o
  c´digo fuente de su repositorio git.
   o

                            https://github.com/bitprophet/fabric

  Usando Fabric
  Un script sencillo para ejecuci´n local ser´
                                 o           ıa:

                   from fabric.api import local

                   def disk_space():
                       local(‘df -h’)

                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Ejecuci´n de tareas sobre SSH con Fabric
       o

  Usando Fabric
  Un script sencillo para ejecuci´n remota y con sudo ser´
                                 o                       ıa:
                from fabric.api import run

                def disk_space():
                    run(‘df -h’)

                def install_apache():
                    sudo(’apt-get install apache2 mod_wsgi’, pty=True)


  Para ejecutar los comandos descritos bastar´ con ejecutar fabric:
                                             a
                $ fab -H remotehost disk_space


                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Ejecuci´n de tareas sobre SSH con Fabric
       o


  Parametrizaci´n de fabfile
               o
      Diccionario de par´metros env cuyas claves hacen referencia a
                        a
      variables de entorno:
                   env.user: Usuario utilizado para conexiones SSH.
                   env.password: Contrse˜a usada para conexiones SSH o para
                                            n
                   ejecutar sudo.
                   env.hosts: Listado de m´quinas sobre las que se ejecutar´n las
                                             a                             a
                   tareas.
                   env.key filename: Archivo o listado de archivos donde se
                   alojan las llaves primarias para la conexi´n v´ SSH.
                                                             o ıa




                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Ejecuci´n de tareas sobre SSH con Fabric
       o


  Algunas operacioens de Fabric
  Algunas operaciones de utilidad.
          put: Permite enviar un fichero al servidor remoto.
          get: Descarga un fichero del servidor remoto.
          local: Ejecuta un comando en la m´quina local.
                                           a
          run: Ejecuta un comando en la o las m´quinas remotas.
                                               a
          sudo: Permite la ejecuci´n de comandos con privilegios de
                                  o
          superusuario.



                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Herramientas utilizadas

  Django
  Framework escrito en Python para desarrollo de aplicaciones web.
  Liberado bajo licencia BSD.
  Sitio web: http://www.djangoproject.com/


  Django-extensions
  Aplicaci´n instalable en Django que permite incrementar el n´mero
          o                                                   u
  de programas a ejecutar desde la l´
                                    ınea de comandos “con
  manage.py”.
  Liberado bajo licencia New BSD.
  Sitio web: https://github.com/django-extensions/django-extensions


                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Herramientas utilizadas

  South
  Aplicaci´n instalable en Django que permite realizar cambios en los
          o
  modelos facilitando su migraci´n.
                                o
  Liberado bajo licencia ASL 2.0.
  Sitio web: http://south.aeracode.org/


  Git
  Sistema controlador de versiones distribuido escrito en C.
  Liberado bajo licencia GPL v2.
  Sitio web: http://git-scm.com/



                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python
Algunos requerimientos en el despliegue de aplicaciones.
                       Una buena soluci´n (Virtualenv).
                                        o
                             Usando Virtualenvwrapper.
             Gesti´n de paquetes Python mediante Pip.
                  o
              Ejecuci´n de tareas sobre SSH con Fabric.
                     o
                   Herramientas utilizadas como apoyo.


Referencias

  Virtualenv
       http://www.virtualenv.org/en/latest/index.html

  Virtualenvwrapper
          http://www.doughellmann.com/docs/virtualenvwrapper

  Fabric
       http://docs.fabfile.org/en/1.0.1/index.html

  PIP
          http://www.pip-installer.org/en/latest/index.html

                               Oscar Javier Moreno Rey      Despliegue Aplicaciones Python

Más contenido relacionado

ODP
[Apache Barcamp 2011] Introducción a Maven
PDF
Continuous Delivery Un caso de estudio
PDF
Parte 4 Curso ESF-GPUL
PDF
Python power 1
ODP
Python en Android,Charla del FUDcon Latam 2012
PDF
Unidad 1
PPT
Conversión y reparación de datos
PPT
Conversión y reparación de datos
[Apache Barcamp 2011] Introducción a Maven
Continuous Delivery Un caso de estudio
Parte 4 Curso ESF-GPUL
Python power 1
Python en Android,Charla del FUDcon Latam 2012
Unidad 1
Conversión y reparación de datos
Conversión y reparación de datos

Destacado (11)

PPTX
Stress management
PPT
Organisational stress management
PDF
Portfolio Management
PPT
Classification Of Cost
PPTX
portfolio management PPT
PPTX
Portfolio mangement
PPT
Stress management-ppt
PPT
Stress management ppt
PPT
Training ppt
PPT
Stress Management Presentation
PPTX
Lesson Plan PowerPoint Presentation
Stress management
Organisational stress management
Portfolio Management
Classification Of Cost
portfolio management PPT
Portfolio mangement
Stress management-ppt
Stress management ppt
Training ppt
Stress Management Presentation
Lesson Plan PowerPoint Presentation
Publicidad

Similar a Virtualenv (20)

PDF
Python con baterias incluídas
PDF
Python
PDF
Parallel Python sistemas operativos avanzados
PDF
Integrando mis librerías C++ con Python
PPTX
Python introducción al lenguaje de programación
PDF
Introduccion a Python para la web
PDF
Python para todos
PDF
Python_para_todos.pdf
PDF
Python para todos
PDF
Python_para_todos.pdf
PDF
python-para-todos.pdf
PDF
python-para-todos.pdf
PDF
PDF
Python para todos
PDF
Libro python para todos
ODP
Administra tu código con Git y Github
PDF
Virtualenv y buildout
PDF
Parallel python sistemas operativos avanzados
PDF
Gestión Remota de Equipos con Python
PPTX
The modern perl toolchain
Python con baterias incluídas
Python
Parallel Python sistemas operativos avanzados
Integrando mis librerías C++ con Python
Python introducción al lenguaje de programación
Introduccion a Python para la web
Python para todos
Python_para_todos.pdf
Python para todos
Python_para_todos.pdf
python-para-todos.pdf
python-para-todos.pdf
Python para todos
Libro python para todos
Administra tu código con Git y Github
Virtualenv y buildout
Parallel python sistemas operativos avanzados
Gestión Remota de Equipos con Python
The modern perl toolchain
Publicidad

Más de campus party (20)

PDF
Titulo
PDF
¿Qué es SCADA y cómo me afecta su (in)seguridad?
PDF
Producción del largometraje pequeñas voces
PPTX
Conferencia: Aplicaciones y el reto del desarrollo móvil
PDF
Liminal Bluevia 1
PPSX
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
PPSX
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
PDF
X taller bluevialiminal
PDF
X liminal buevia 2 (dllo.)-taller
PDF
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
PPT
Theremin Alfredo Vargas
PDF
Sonido y cine Ricardo Escallon
PPTX
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
PDF
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
PPTX
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
PPT
Mundos virtuales inmersivos y social shopping
PPT
Creación transmediática y comunidades en práctica
PDF
Android+Arduino
PDF
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
PDF
Linux en caja
Titulo
¿Qué es SCADA y cómo me afecta su (in)seguridad?
Producción del largometraje pequeñas voces
Conferencia: Aplicaciones y el reto del desarrollo móvil
Liminal Bluevia 1
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
Como sería un viaje a la velocidad de la luz - Miguel Ángel Contreras
X taller bluevialiminal
X liminal buevia 2 (dllo.)-taller
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
Theremin Alfredo Vargas
Sonido y cine Ricardo Escallon
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Mundos virtuales inmersivos y social shopping
Creación transmediática y comunidades en práctica
Android+Arduino
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Linux en caja

Último (20)

DOCX
Guía 5. Test de orientación Vocacional 2[1] (Recuperado automáticamente).docx
PPTX
Uso responsable de la tecnología - EEST N°1
DOCX
Trabajo informatica joel torres 10-.....................
PDF
Inteligencia_Artificial,_Informática_Básica,_22_06_2025_SO_2.pdf
PPTX
Reconocimiento-Automatico-de-Placas-Vehiculares-con-IA.pptx
PPTX
PRESENTACION El PODER DE LA MENTALIDAD.pptx
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
DOCX
Nombre del estudiante Gabriela Benavides
DOCX
tablas tecnologia maryuri vega 1....docx
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
PPTX
TECNOLOGIAS DE INFORMACION Y COMUNICACION
PPTX
Navegación en neurocirugías y su implicación ética.pptx
PDF
Distribucion de frecuencia exel (1).pdf
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PPTX
Usuarios en la arquitectura de la información
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
PPTX
El uso de las TIC en la vida cotidiana..
PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PPTX
Presentación final ingenieria de metodos
Guía 5. Test de orientación Vocacional 2[1] (Recuperado automáticamente).docx
Uso responsable de la tecnología - EEST N°1
Trabajo informatica joel torres 10-.....................
Inteligencia_Artificial,_Informática_Básica,_22_06_2025_SO_2.pdf
Reconocimiento-Automatico-de-Placas-Vehiculares-con-IA.pptx
PRESENTACION El PODER DE LA MENTALIDAD.pptx
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
Nombre del estudiante Gabriela Benavides
tablas tecnologia maryuri vega 1....docx
Teoría de estadística descriptiva y aplicaciones .pdf
TECNOLOGIAS DE INFORMACION Y COMUNICACION
Navegación en neurocirugías y su implicación ética.pptx
Distribucion de frecuencia exel (1).pdf
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
Usuarios en la arquitectura de la información
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
El uso de las TIC en la vida cotidiana..
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
Presentación final ingenieria de metodos

Virtualenv

  • 1. Despliegue de aplicaciones Python usando VirtualEnv Virtualenv - Pip - Fabric Oscar Javier Moreno Rey Campus Party Colombia 23 de junio de 2011
  • 2. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Contenidos 1 Algunos requerimientos en el despliegue de aplicaciones. 2 Una buena soluci´n (Virtualenv). o 3 Usando Virtualenvwrapper. 4 Gesti´n de paquetes Python mediante Pip. o 5 Ejecuci´n de tareas sobre SSH con Fabric. o 6 Herramientas utilizadas como apoyo. Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 3. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Algunos problemas comunes Al llevar a cabo las tareas de despliegue y mantenimiento de aplicaciones nos encontramos con los siguientes inconvenientes: Las aplicaciones requieren componentes con versiones espec´ ıficas. Se necesita mantener la aplicaci´n en la versi´n estable sin o o tocar sus componentes. En el hosting compartido no se tienen permisos suficientes para actualizar o instalar dependencias de mi aplicaci´n. o Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 4. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Virtualenv Una buena soluci´n! o Creaci´n y manejo de entornos virtuales usando Virtualenv. o ¿Qu´ es virtualenv? e Herramienta para crear entornos independientes en Python. Sucesor de Workingenv. Puede trabajar con setuptools o distribute. Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 5. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Virtualenv Instalaci´n o En distribuci´nes GNU/Linux tipo Debian basta con: o $ sudo apt-get install python-virtualenv Creando un entorno virtual Se crea un entorno virtual llamado “test” con distribute y no hace uso de los paquetes globales de Python: $ virtualenv --distribute --no-site-packages test Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 6. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Virtualenv Estructura La estructura de directorios para “test” es la siguiente: test/ |- bin/ |- include/ |- lib/ Activando y desactivando el entorno $ source bin/activate $ deactivate Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 7. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Virtualenvwrapper ¿Qu´ es virtualenvwrapper? e Es una extensi´n de virtualenv que permite manejar de forma m´s o a amable varios entornos virtuales en un servidor. Instalaci´n o En una distribuci´n GNU/Linux tipo Debian se puede instalar o desde los repositorios: # apt-get install virtualenvwrapper Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 8. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Virtualenvwrapper Configuraci´n o Es necesario definir el directorio que alojar´ los entornos virtuales a adem´s del fichero que contiene las diferentes funciones de a virtualenvwrapper. Se puede definir dentro del fichero .bashrc as´ ı: export WORKON_HOME=$HOME/.virtualenvs source /path/to/bin/virtualenvwrapper.sh Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 9. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Virtualenvwrapper Manejando entornos virtuales Comandos de utilidad: mkvirtualenv: Creaci´n de entornos virtuales. o mkvirtualenv --distribute --no-site-packages test workon: Activaci´n de entornos virtuales. o workon test rmvirtualenv: Eliminaci´n de entornos virtuales. o rmvirtualenv test deactivate: Desactiva entorno virtual. Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 10. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Gesti´n de paquetes Python mediante Pip o ¿Qu´ es Pip? e Es una herramienta que permite instalar, actualizar o eliminar paquetes Python. Creado como fork a partir de easy install con mejoras como: Prevenci´n contra instalaciones parciales descargando en su o totalidad el paquete escogido. Menjsajes de error m´s claros. a Desinstalaci´n de paquetes. o Soporte nativo para Git, Mercurial y Bazaar. Permite trabajar con setuptools o distribute. Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 11. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Pip Introducci´n a Pip o Algunas opciones utiles para usar Pip son: ´ search: Permite buscar dentro del listado de paquetes alguno en especial. install: Permite instalar o actualizar los paquetes seleccionados. install -r: Permite instalar paquetes listados en un fichero. install -e: Permite instalar paquetes desde una URL. install –upgrade: Lleva a cabo la actualizaci´n de un paquete. o uninstall: Elimina el paquete especificado. freeze: Muestra el listado de paquetes instalados con sus versiones exactas. Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 12. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Pip Usando Pip con Virtualenv Cada vez que se crea un entorno virtual, una copia de Pip es almacenada en ´ste. e Los paquetes instalados son almacenados en el directorio local “lib”, dentro del entorno virtual. Es necesario tener instaladas librer´ de desarrollo en el S. O. ıas para la correcta instalaci´n de algunos paquetes. o Ejemplo Instalaci´n de xmlrpclib. o Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 13. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Usando Pip Definici´n de fichero requiements.txt. o El fichero que almacena el listado de dependencias deber´ tener a una estructura similar a la siguiente: #Definici´n de paquetes congelados en la versi´n X.X. o o xmlrpclib==1.0.1 ipython==0.10.2 #Definici´n de paquetes descargados de una URL con git. o -e git+https://github.com/django/django.git#egg=Package El anterior listado puede ser instalado mediante la opci´n “-r”. o pip install -r requirementes.txt Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 14. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Ejecuci´n de tareas sobre SSH con Fabric o ¿Qu´ es Fabric? e Es una herramienta escrita en Python que permite ejecutar comandos via SSH en varios hosts. Ejecuta comandos v´ sudo o como usuario normal. ıs Se obtiene la salida interactiva del resultado en cada ejecuci´n. o Instalaci´n o Puede ser instalado a trav´s de Pip o easy install. e pip install fabric o ´ easy_install fabric Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 15. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Ejecuci´n de tareas sobre SSH con Fabric o Instalaci´n o Tambi´n es posible obener la versi´n de desarrollo descargando el e o c´digo fuente de su repositorio git. o https://github.com/bitprophet/fabric Usando Fabric Un script sencillo para ejecuci´n local ser´ o ıa: from fabric.api import local def disk_space(): local(‘df -h’) Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 16. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Ejecuci´n de tareas sobre SSH con Fabric o Usando Fabric Un script sencillo para ejecuci´n remota y con sudo ser´ o ıa: from fabric.api import run def disk_space(): run(‘df -h’) def install_apache(): sudo(’apt-get install apache2 mod_wsgi’, pty=True) Para ejecutar los comandos descritos bastar´ con ejecutar fabric: a $ fab -H remotehost disk_space Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 17. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Ejecuci´n de tareas sobre SSH con Fabric o Parametrizaci´n de fabfile o Diccionario de par´metros env cuyas claves hacen referencia a a variables de entorno: env.user: Usuario utilizado para conexiones SSH. env.password: Contrse˜a usada para conexiones SSH o para n ejecutar sudo. env.hosts: Listado de m´quinas sobre las que se ejecutar´n las a a tareas. env.key filename: Archivo o listado de archivos donde se alojan las llaves primarias para la conexi´n v´ SSH. o ıa Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 18. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Ejecuci´n de tareas sobre SSH con Fabric o Algunas operacioens de Fabric Algunas operaciones de utilidad. put: Permite enviar un fichero al servidor remoto. get: Descarga un fichero del servidor remoto. local: Ejecuta un comando en la m´quina local. a run: Ejecuta un comando en la o las m´quinas remotas. a sudo: Permite la ejecuci´n de comandos con privilegios de o superusuario. Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 19. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Herramientas utilizadas Django Framework escrito en Python para desarrollo de aplicaciones web. Liberado bajo licencia BSD. Sitio web: http://www.djangoproject.com/ Django-extensions Aplicaci´n instalable en Django que permite incrementar el n´mero o u de programas a ejecutar desde la l´ ınea de comandos “con manage.py”. Liberado bajo licencia New BSD. Sitio web: https://github.com/django-extensions/django-extensions Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 20. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Herramientas utilizadas South Aplicaci´n instalable en Django que permite realizar cambios en los o modelos facilitando su migraci´n. o Liberado bajo licencia ASL 2.0. Sitio web: http://south.aeracode.org/ Git Sistema controlador de versiones distribuido escrito en C. Liberado bajo licencia GPL v2. Sitio web: http://git-scm.com/ Oscar Javier Moreno Rey Despliegue Aplicaciones Python
  • 21. Algunos requerimientos en el despliegue de aplicaciones. Una buena soluci´n (Virtualenv). o Usando Virtualenvwrapper. Gesti´n de paquetes Python mediante Pip. o Ejecuci´n de tareas sobre SSH con Fabric. o Herramientas utilizadas como apoyo. Referencias Virtualenv http://www.virtualenv.org/en/latest/index.html Virtualenvwrapper http://www.doughellmann.com/docs/virtualenvwrapper Fabric http://docs.fabfile.org/en/1.0.1/index.html PIP http://www.pip-installer.org/en/latest/index.html Oscar Javier Moreno Rey Despliegue Aplicaciones Python