SlideShare una empresa de Scribd logo
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

Destacado

Organisational stress management
Organisational stress managementOrganisational stress management
Organisational stress managementRaaz Dhamelia
 
Portfolio Management
Portfolio ManagementPortfolio Management
Portfolio Managementghanchifarhan
 
Classification Of Cost
Classification Of CostClassification Of Cost
Classification Of CostDr. Rana Singh
 
portfolio management PPT
portfolio management PPTportfolio management PPT
portfolio management PPTShruti Mohan
 
Portfolio mangement
Portfolio mangementPortfolio mangement
Portfolio mangementPolite Man
 
Stress management-ppt
Stress management-pptStress management-ppt
Stress management-pptGeetharoja
 
Stress Management Presentation
Stress Management PresentationStress Management Presentation
Stress Management PresentationPk Doctors
 
Lesson Plan PowerPoint Presentation
Lesson Plan PowerPoint PresentationLesson Plan PowerPoint Presentation
Lesson Plan PowerPoint Presentationyseauy
 

Destacado (11)

Stress management
Stress managementStress management
Stress management
 
Organisational stress management
Organisational stress managementOrganisational stress management
Organisational stress management
 
Portfolio Management
Portfolio ManagementPortfolio Management
Portfolio Management
 
Classification Of Cost
Classification Of CostClassification Of Cost
Classification Of Cost
 
portfolio management PPT
portfolio management PPTportfolio management PPT
portfolio management PPT
 
Portfolio mangement
Portfolio mangementPortfolio mangement
Portfolio mangement
 
Stress management-ppt
Stress management-pptStress management-ppt
Stress management-ppt
 
Stress management ppt
Stress management pptStress management ppt
Stress management ppt
 
Training ppt
Training pptTraining ppt
Training ppt
 
Stress Management Presentation
Stress Management PresentationStress Management Presentation
Stress Management Presentation
 
Lesson Plan PowerPoint Presentation
Lesson Plan PowerPoint PresentationLesson Plan PowerPoint Presentation
Lesson Plan PowerPoint Presentation
 

Similar a Virtualenv

Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2José Vázquez
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2José Vázquez
 
Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloScalia
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y PuppetRichard Moya
 
Demostración final
Demostración finalDemostración final
Demostración finalcarmensp
 
La virtualización (Hardware y Software)
La virtualización (Hardware y Software)La virtualización (Hardware y Software)
La virtualización (Hardware y Software)kevin0514
 
Virtualizacion por Hardware y por Software
Virtualizacion por Hardware y por SoftwareVirtualizacion por Hardware y por Software
Virtualizacion por Hardware y por Softwarekevin0514
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladoressergiovier
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloAngelDX
 

Similar a Virtualenv (20)

Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
Pylons
PylonsPylons
Pylons
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2
 
Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrollo
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
 
Demostración final
Demostración finalDemostración final
Demostración final
 
Curso Vagrant
Curso VagrantCurso Vagrant
Curso Vagrant
 
Vagrant
VagrantVagrant
Vagrant
 
Portafolio
PortafolioPortafolio
Portafolio
 
La virtualización (Hardware y Software)
La virtualización (Hardware y Software)La virtualización (Hardware y Software)
La virtualización (Hardware y Software)
 
Virtualizacion por Hardware y por Software
Virtualizacion por Hardware y por SoftwareVirtualizacion por Hardware y por Software
Virtualizacion por Hardware y por Software
 
Maven
MavenMaven
Maven
 
Virtualización para Desarrolladores
Virtualización para DesarrolladoresVirtualización para Desarrolladores
Virtualización para Desarrolladores
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
Lp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de DesarrolloLp II clase03 - Entornos de Desarrollo
Lp II clase03 - Entornos de Desarrollo
 
Python
PythonPython
Python
 
VIRTUALBOX
VIRTUALBOX VIRTUALBOX
VIRTUALBOX
 

Más de campus party

¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad? ¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad? campus party
 
Producción del largometraje pequeñas voces
Producción del largometraje pequeñas vocesProducción del largometraje pequeñas voces
Producción del largometraje pequeñas vocescampus party
 
Conferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvilConferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvilcampus party
 
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 ContrerasComo 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 Contrerascampus party
 
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 ContrerasComo 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 Contrerascampus party
 
X taller bluevialiminal
X taller bluevialiminalX taller bluevialiminal
X taller bluevialiminalcampus party
 
X liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-tallerX liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-tallercampus party
 
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1campus party
 
Theremin Alfredo Vargas
Theremin Alfredo Vargas Theremin Alfredo Vargas
Theremin Alfredo Vargas campus party
 
Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon campus party
 
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 BautistaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautistacampus party
 
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés FonsecaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonsecacampus party
 
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPAseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPcampus party
 
Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping campus party
 
Creación transmediática y comunidades en práctica
Creación transmediática y comunidades en prácticaCreación transmediática y comunidades en práctica
Creación transmediática y comunidades en prácticacampus party
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...campus party
 

Más de campus party (20)

Titulo
Titulo Titulo
Titulo
 
¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad? ¿Qué es SCADA y cómo me afecta su (in)seguridad?
¿Qué es SCADA y cómo me afecta su (in)seguridad?
 
Producción del largometraje pequeñas voces
Producción del largometraje pequeñas vocesProducción del largometraje pequeñas voces
Producción del largometraje pequeñas voces
 
Conferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvilConferencia: Aplicaciones y el reto del desarrollo móvil
Conferencia: Aplicaciones y el reto del desarrollo móvil
 
Liminal Bluevia 1
Liminal Bluevia 1Liminal Bluevia 1
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 ContrerasComo 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
 
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 ContrerasComo 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 taller bluevialiminalX taller bluevialiminal
X taller bluevialiminal
 
X liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-tallerX liminal buevia 2 (dllo.)-taller
X liminal buevia 2 (dllo.)-taller
 
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
X elalgoritmodelamemoria maria juliana soto (social media) (1) 1
 
Theremin Alfredo Vargas
Theremin Alfredo Vargas Theremin Alfredo Vargas
Theremin Alfredo Vargas
 
Sonido y cine Ricardo Escallon
Sonido y cine Ricardo Escallon Sonido y cine Ricardo Escallon
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 BautistaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Bautista
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
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés FonsecaPhotoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
Photoshop para fotógrafos. Del cuarto oscuro al cuarto digital - Andrés Fonseca
 
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASPAseguramiento de Vulnerabilidades Web con tecnologías OWASP
Aseguramiento de Vulnerabilidades Web con tecnologías OWASP
 
Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping Mundos virtuales inmersivos y social shopping
Mundos virtuales inmersivos y social shopping
 
Creación transmediática y comunidades en práctica
Creación transmediática y comunidades en prácticaCreación transmediática y comunidades en práctica
Creación transmediática y comunidades en práctica
 
Android+Arduino
Android+ArduinoAndroid+Arduino
Android+Arduino
 
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
Implementación de Cloud Computing con Software Libre y medidas de seguridad p...
 
Linux en caja
Linux en cajaLinux en caja
Linux en caja
 

Último

Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.saravalentinat22
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiegoCampos433849
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfjjfch3110
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.sofiasonder
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respetocdraco
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...Kevin Serna
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024DanielErazoMedina
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx44652726
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesPABLOCESARGARZONBENI
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadaspqeilyn0827
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusraquelariza02
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfMarianneBAyn
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxencinasm992
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docxwerito139410
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Telefónica
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialEducática
 

Último (20)

Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 

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