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 (8)

PPS
Eres Feliz
PPTX
Web2.0
PPTX
PERIODO DE ADAPTACIÓN
PPT
Rfid технологии. станции самостоятельной книговыдачивозврата. rfid-оборудован...
PPS
Rapidez mental
PDF
Creacion Compilados De Sl En Cd
PDF
Concursos de robotica movil (1)
PPT
Presentación Club Resellers en IBM México
Eres Feliz
Web2.0
PERIODO DE ADAPTACIÓN
Rfid технологии. станции самостоятельной книговыдачивозврата. rfid-оборудован...
Rapidez mental
Creacion Compilados De Sl En Cd
Concursos de robotica movil (1)
Presentación Club Resellers en IBM México
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)

PPTX
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
PDF
MANUAL de recursos humanos para ODOO.pdf
PPTX
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
DOCX
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PPTX
Uso responsable de la tecnología - EEST N°1
PDF
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
Sistema de Gestión Integral TCA Ingenieros.pptx
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PPTX
El uso de las TIC en la vida cotidiana..
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
Curso de generación de energía mediante sistemas solares
PDF
Distribucion de frecuencia exel (1).pdf
PDF
Taller tecnológico Michelle lobo Velasquez
CLAASIFICACIÓN DE LOS ROBOTS POR UTILIDAD
MANUAL de recursos humanos para ODOO.pdf
Diapositivas Borrador Rocha Jauregui David Paolo (3).pptx
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Trabajo grupal.docxjsjsjsksjsjsskksjsjsjsj
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Uso responsable de la tecnología - EEST N°1
CONTABILIDAD Y TRIBUTACION, EJERCICIO PRACTICO
TRABAJO DE TECNOLOGIA.pdf...........................
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
Presentacion de Alba Curso Auditores Internos ISO 19011
Sistema de Gestión Integral TCA Ingenieros.pptx
Mecanismos-de-Propagacion de ondas electromagneticas
El uso de las TIC en la vida cotidiana..
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Historia Inteligencia Artificial Ana Romero.pptx
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
Curso de generación de energía mediante sistemas solares
Distribucion de frecuencia exel (1).pdf
Taller tecnológico Michelle lobo Velasquez

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