Base de conocimientos  /  Cloud Application Manager  /  Tutoriales
Base de conocimientos  /  Cloud Application Manager  /  Tutoriales

Establezca un entorno de desarrollo utilizando Cloud Application Manager y Vagrant 


Código del artículo: kb/415

Establezca un entorno de desarrollo utilizando Cloud Application Manager y Vagrant 

En este recorrido de 0 minutos, aprenda a iniciar desarrollos listos para producción y probar entornos desde casillas en su computadora portátil utilizando el agente de Cloud Application Manager. Con las casillas, puede iniciar entornos de desarrollo de la misma manera que la producción, lo que permite que los desarrolladores prueben los cambios de manera realista.

Contexto

Vamos a definir un entorno de desarrollo de Rails en casillas y las vamos a ejecutar utilizando el agente Cloud Application Manager en su computadora portátil Mac ejecutando una máquina virtual en Vagrant y VirtualBox. El entorno está basado en una aplicación Ruby on Rails de muestra que utiliza MySQL como base de datos.

Objetivos de aprendizaje

Este tutorial ayuda a que aprenda los siguientes conceptos:

  • Definir cualquier módulo o aplicación en casillas. Si alguna parte del entorno cambia a futuro, no tiene que cambiar todas las computadoras portátiles de los desarrolladores, sino solo la casilla, por ejemplo.
  • Agilizar aplicaciones desde las casillas a cualquier infraestructura, como su computadora portátil, utilizando el script de shell Linux del agente Cloud Application Manager.
  • Trabajar con Cloud Application Manager y Vagrant para ejecutar entornos locales. Ejecute aplicaciones dentro de una máquina virtual para aislar y proteger su computadora portátil de un sistema operativo y tiempo de ejecución diferentes.

Comencemos:

  • Antes de empezar
  • Defina el entorno de desarrollo en casillas
  • Ejecute el entorno de desarrollo utilizando el agente Cloud Application Manager
  • Verifique el entorno de desarrollo

Antes de empezar

Para comenzar, prepare lo siguiente:

  1. Registre una cuenta de Cloud Application Manager.

  2. Bifurque una aplicación de muestra de Rails desde este repositorio de GitHub. Clónela en su computadora portátil Mac como se muestra. Esto crea una copia local de la aplicación de muestra de Rails.

    tutorial-vagrant-1.png

    tutorial-vagrant-1-2.png

  3. Instale VirtualBox, un simulador gratis de código abierto para ejecutar su entorno de desarrollo. Para instalarlo, ejecute este comando en la terminal de su computadora portátil Mac:

    brew cask install virtualbox
    
  4. Instale Vagrant en su computadora portátil Mac para aislar su entorno de desarrollo en VirtualBox:

    brew cask install vagrant
    
  5. Instale una imagen de Linux Vagrant Ubuntu 0.1: 

    vagrant box add ubuntu/trusty64 https://vagrantcloud.com/ubuntu/boxes/trusty64
    
  6. Cree un Vagrantfile que utilizaremos luego para suministrar la imagen:

    vagrant init ubuntu/trusty64
    

Defina el entorno de desarrollo en casillas

Iniciamos sesión en Cloud Application Manager y definimos módulos del entorno de desarrollo en Rails en varias casillas y las apilamos en una sola casilla al final.

Casilla Nodejs

Esto instala el tiempo de ejecución de Javascript para la aplicación de Rails.

Pasos

  1. Cree una nueva casilla llamada Nodejs basada en Linux Compute.

  2. Agregue una variable de opciones llamada APT_GET_UPDATE con un valor no.

tutorial-vagrant-1-3.png

  1. Copie/pegue este script en un evento de instalación:

tutorial-vagrant-1-4.png

```
#!/bin/bash

{{ 'apt-get update' if APT_GET_UPDATE == 'yes' }}
apt-get -q -y install nodejs

```

tutorial-vagrant-2.png


Casillas de depedencias de Rails

Esto instala todas las dependencias para la aplicación Rails.

Pasos

  1. Cree una nueva casilla llamada Rails Dependencies (Dependencias de Rails) basada en Linux Compute.

  2. Agregue las siguientes variables:

    • Variable de puerto llamada http configurada en 0.
    • Variable de casilla llamada ruby apuntando a la casilla Ruby predeterminada.
    • Variable de casilla llamada nodejs apuntando a la casilla Nodejs.

    tutorial-vagrant-3.png


Rails con casilla GitHub

Pasos

  1. Cree una nueva casilla llamada Rails con GitHub basada en Linux Compute.

  2. Agregue estas variables de casillas:

    • Variable de casilla llamada rails apuntando a la casilla Dependencias de Rails
    • Variable de casilla llamada github apuntando a la casilla GitHub.

    tutorial-vagrant-4.png


Casilla MySQL Ubuntu

Esto instala el servidor MySQL y crea una base de datos.

Pasos

  1. Cree una nueva casilla llamada MySQL Ubuntu basada en Linux Compute.

  2. Agregue las siguientes variables:

    • Variable de opciones llamada APT_GET_UPDATE configurada en yes (sí)
    • Variable de texto llamada BIND_ADDRESS configurada en 0.1.2.3 
    • Variable de texto llamada DATA_DIR configurada en /var/lib/mysql
    • Variable de texto llamada LOG_ERROR configurada en /var/log/mysql/error.log
    • Variable de texto llamada MAX_ALLOWED_PACKET configurada en 0M
    • Variable de texto llamada MAX_CONNECTIONS configurada en 0
    • Variable de puerto llamada MYSQL_PORT configurada en 0
    • Variable de texto llamada ROOT_PASSWORD configurada en elasticbox0
    • Variable de archivo llamada my_cnf con este script cargado como archivo de texto:
      #
    # The MySQL database server configuration file.
    #
    # You can copy this to one of:
    # - "/etc/mysql/my.cnf" to set global options,
    # - "~/.my.cnf" to set user-specific options.
    #
    # One can use all long options that the program supports.
    # Run program with --help to get a list of available options and with
    # --print-defaults to see which it would actually understand and use.
    #
    # For explanations see
    # http://dev.mysql.com/doc/mysql/en/server-system-variables.html
    #
    # This will be passed to all mysql clients
    # It has been reported that passwords should be enclosed with ticks/quotes
    # especially if they contain "#" chars...
    # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
    [client]
    port    = {{ MYSQL_PORT }}
    socket    = /var/run/mysqld/mysqld.sock
    #    
    # Here is entries for some specific programs
    # The following values assume you have at least 32M ram
    
    # This was formally known as [safe_mysqld]. Both versions are currently parsed.
    [mysqld_safe]
    socket    = /var/run/mysqld/mysqld.sock
    nice    = 0
    
    [mysqld]
    #
    # * Basic Settings
    #
    user    = mysql
    pid-file  = /var/run/mysqld/mysqld.pid
    socket    = /var/run/mysqld/mysqld.sock
    port    = {{ MYSQL_PORT }}
    basedir   = /usr
    datadir   = /var/lib/mysql
    tmpdir    = /tmp
    lc-messages-dir = /usr/share/mysql
    skip-external-locking
    #
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address    = {{ BIND_ADDRESS }}
    #
    # * Fine Tuning
    #
    key_buffer    = 16M
    max_allowed_packet  = {{ MAX_ALLOWED_PACKET }}
    thread_stack    = 192K
    thread_cache_size       = 8
    # This replaces the startup script and checks MyISAM tables if needed
    # the first time they are touched
    myisam-recover         = BACKUP
    #max_connections        = {{ MAX_CONNECTIONS }}
    #table_cache            = 64
    #thread_concurrency     = 10
    #
    # * Query Cache Configuration
    #
    query_cache_limit = 1M
    query_cache_size        = 16M
    #
    # * Logging and Replication
    #
    # Both location gets rotated by the crontab.
    # Be aware that this log type is a performance killer.
    # As of 5.1 you can enable the log at runtime!
    #general_log_file        = /var/log/mysql/mysql.log
    #general_log             = 1
    #
    # Error log - should be very few entries.
    #
    log_error = {{ LOG_ERROR }}
    #
    # Here you can see queries with especially long duration
    #log_slow_queries = /var/log/mysql/mysql-slow.log
    #long_query_time = 2
    #log-queries-not-using-indexes
    #
    # The following can be used as easy to replay backup logs or for replication.
    # Note: If you are setting up a replication slave, see README.Debian about
    #       other settings you may need to change.
    #server-id    = 1
    #log_bin      = /var/log/mysql/mysql-bin.log
    expire_logs_days  = 10
    max_binlog_size         = 100M
    #binlog_do_db   = include_database_name
    #binlog_ignore_db = include_database_name
    #
    # * InnoDB
    #
    # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
    # Read the manual for more InnoDB related options. There are many!
    #
    # * Security Features
    #
    # Read the manual, too, if you want chroot!
    # chroot = /var/lib/mysql/
    #
    # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
    #
    # ssl-ca=/etc/mysql/cacert.pem
    # ssl-cert=/etc/mysql/server-cert.pem
    # ssl-key=/etc/mysql/server-key.pem
    
    [mysqldump]
    quick
    quote-names
    max_allowed_packet  = {{ MAX_ALLOWED_PACKET }}
    
    [mysql]
    #no-auto-rehash # faster start of mysql but no tab completion
    
    [isamchk]
    key_buffer    = 16M
    
    #
    # * IMPORTANT: Additional settings that can override those from this file!
    #   The files must end with '.cnf', otherwise they'll be ignored.
    #
    !includedir /etc/mysql/conf.d/
    
  3. Copie/pegue el siguiente script en un evento de install (instalación)

      #!/bin/bash
    {{ 'apt-get update' if APT_GET_UPDATE == 'yes' }}
    export DEBIAN\_FRONTEND=noninteractive
    apt-get -q -y install mysql-server
    elasticbox config -i config/database.template.yml -o config/database.yml
    # Set Password
    mysqladmin -u root password {{ ROOT_PASSWORD }}
    
    # Make accessible from all ips
    mysql -uroot -p{{ ROOT_PASSWORD }} --execute "GRANT ALL PRIVILEGES ON *.* to 'root'@'%'; FLUSH PRIVILEGES;"
    

    tutorial-vagrant-5.png


Casilla de entorno de desarrollo de Rails

Esta casilla instala un entorno de desarrollo con la aplicación de muestra de Rails, tiempos de ejecución y base de datos MySQL.

Pasos

  1. Cree una nueva casilla llamada Rails Dev Env basada en Linux Compute.

  2. Agregue las siguientes variables:

    • Variable de casilla llamada mysql que apunta a la casilla MySQL Ubuntu
    • Variable de casilla llamada rails que apunta a la casilla Rails with GitHub
  3. Expanda las variables de casilla rails hasta la casilla ruby. Configure RVM_RUBY_VERSION como ruby-0.1.2-p3.

  4. Expanda la variable de casilla github y, en la casilla git_repo, configure los valores para estas variables como se ve a continuación:

    • BRANCH a master
    • CLONE_DIRECTORY a /vagrant
    • CLONE_URL a https://github.com/< your_fork_of_the_sample_Rails_app >
  5. Copie/pegue este script en un evento de configure (configuración):

    #!/bin/bash
    source "/usr/local/rvm/scripts/rvm"
    cd {{ rails.github.git_repo.CLONE_DIRECTORY }}
    cp config/database.yml.example config/database.yml
    
    # ruby dev packages to support building gems from source
    apt-get -y install ruby2.0-dev libreadline-ruby2.0 libruby2.0 libopenssl-ruby
    
    # nokogiri requirements
    apt-get -y install libxslt-dev libxml2-dev
    
    # app specific
    bundle install --without production
    bundle exec rake db:migrate
    
  6. Copie/pegue este script en un evento pre_start:

    #!/bin/bash
    source "/usr/local/rvm/scripts/rvm"
    cd {{ rails.github.git_repo.CLONE_DIRECTORY }} && rails server -p {{ rails.rails.http }} -d
    

    tutorial-vagrant-6.png


Ejecute el entorno de desarrollo utilizando el agente Cloud Application Manager

Ejecute la casilla de entorno de desarrollo Rails en la máquina virtual de su computadora portátil Mac en Vagrant y VirtualBox como se ve a continuación:

Pasos

  1. Busque el Vagrantfile en su computadora portátil Mac. Abra y reemplace el contenido con estas líneas. Luego pídale a Vagrant que suministre la imagen de Linux Ubuntu con la casilla de entorno de desarrollo Rails utilizando el script de agente:

    IMPORTANTE. IMPORTANTE: reemplace el token en la bandera -t con su propio token de autenticación. 

    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
    VAGRANTFILE_API_VERSION = "2"
    
    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    # All Vagrant configuration is done here. The most common configuration
    # options are documented and commented below. For a complete reference,
    # please see the online documentation at vagrantup.com.
    
    # Every Vagrant virtual environment requires a box to build off of.
    config.vm.box = "ubuntu/trusty64"
    config.vm.network "forwarded_port", guest: 3000, host: 3100
    config.vm.provision :shell, inline: 'curl -sSL https://cam.ctl.io | sudo bash -s -- -b "Rails Dev Env" -n laptop -t 04329c63-78b7-4313-bc09-8090e3a7e93d'
    
    end
    
  2. Mueva el Vagrantfile a la carpeta sample_app_rails_0 clonada en su computadora portátil Mac. Confirme y suba este cambio a su repositorio bifurcado en GitHub.

    tutorial-vagrant-7.png

  3. En la terminal de su computadora portátil Mac, vaya al directorio sample_app_rails_0 como en este ejemplo:

    cd /Users/cristina/sample_app_rails_4
    
  4. Traiga la imagen de Vagrant Ubuntu a VirtualBox y ejecute el entorno de desarrollo Rails con este comando:

    vagrant up
    

    De inmediato, la casilla se aprovisiona conforme a Vagrantfile y pronto se registra en Cloud Application Manager. Verifique su espacio de trabajo de Cloud Application Manager para ver la instancia de entorno de desarrollo Rails en línea. Esto puede tardar algunos minutos.

    tutorial-vagrant-8.png

  5. Una vez en línea, desde la pestaña de la instancia Endpoints (Puntos de conexión), copie la dirección IP de la aplicación Rails.

    tutorial-vagrant-9.png

  6. En la terminal de su computadora portátil Mac, SSH en su máquina virtual Vagrant desde el directorio sample_app_rails_0: 

    vagrant ssh
    
  7. Abra la aplicación de Rails en la máquina virtual utilizando xdg-open. Si no tiene xdg-utils, instálelo primero como se muestra.

    sudo apt install xdg-utils
    
    xdg-open
    

    tutorial-vagrant-10.png


Verifique el entorno de desarrollo

Hagamos algunas pruebas para verificar que el entorno de desarrollo está funcionando.

Pasos

  1. Abra una nueva terminal en su computadora portátil Mac y vaya al directorio sample_app_rails_0.

  2. SSH en la máquina virtual:

    vagrant ssh
    
  3. Vaya a este directorio de vagrant:

    cd /vagrant
    
  4. Migre las pruebas de Rails como se ve a continuación:

    bin/rake db:migrate RAILS_ENV=test
    
  5. Finalmente, ejecute las pruebas con este comando:

    rspec spec
    

Deberían aprobarse todas las pruebas. ¡Enhorabuena! ¡Felicidades! Ha implementado con éxito un entorno de desarrollo Rails en su computadora portátil utilizando Cloud Application Manager y Vagrant.

tutorial-vagrant-11.png

Para salir del entorno virtual de Vagrant, ejecute este comando:

exit

Tras completar el tutorial, asegúrese de terminar la instancia en su espacio de trabajo de Cloud Application Manager al seleccionar el ícono de engranaje y hacer clic en Terminate (Cancelar).  Luego elimine la máquina virtual de Vagrant con este comando:

vagrant destroy

Comunicarse con soporte de Cloud Application Manager

Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

  • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP dentro de la instancia para ubicar el registro en ProgramData/ElasticBox/Logs/elasticbox-agent.log
Powered by Translations.com GlobalLink OneLink SoftwarePowered By OneLink