Rss

  • flickr
  • linkedin
  • google

Archives for : Servidores

Usar Amazon EC2 como servidor git para control de versiones

Vamos a ver como usar nuestra instancia de Amazon EC2, para albergar en ella nuestro servidor de control de versiones con git. Aunque del mismo modo, lo podríamos realizar en cualquier otro servidor o incluso en un PC que usemos para dicho propósito.

 

Para los que desconozcan lo que es un sistema de control de versiones (aunque su propio nombre nos lo da a entender),  es un sistema que nos permite la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Se puede resumir como un sistema de copia de seguridad de nuestro trabajo, que realiza y almacena copias del estado del mismo durante su desarrollo para poder revertirlo, o para poder consultar cambios en cualquier momento.

 

Instalar git en nuestro equipo local

Antes de nada, si no tenemos instalado git en nuestro equipo local, procedemos haciéndolo:

sudo apt-get install git

 

Usar Amazon EC2 como servidor git para control de versiones, instalar git en equipo local

 

Configurar git en el equipo local

git config --global user.name "nombre_usuario" Sustituimos nomre_usuario por nuestro nombre de usuario que deseemos usar

git config --global user.email usuario@email.com Sustituimos usuario@email.com por nuestro correo.

git config --global core.editor "sublw" Configuramos el editor que deseemos usar por defecto, en este caso Sublime Text

 

Usar Amazon EC2 como servidor git para control de versiones, configurar git en el equipo local

 

Iniciar repositorio en equipo local

cd directorio_repositorio accederemos al repositorio que deseemos usar como repositorio local sustituyendo directorio_repositorio por la ruta correspondiente.

git init Inicializamos el repositorio

 

Usar Amazon EC2 como servidor git para control de versiones, iniciar repositorio en equipo local

 

Añadir archivos y directorios al repositorio

Vamos a crear unos archivos y carpetas de ejemplo para poder añadirlos al repositorio

mkdir js css Creamos dos carpetas

touch index.html js/main.js css/style.css Creamos tres archivos vacios

 

Usar Amazon EC2 como servidor git para control de versiones, crear archivos de ejemplo

 

git add . Añadimos todos los archivos del directorio al repositorio

git commit -m "Primer commit de prueba" Validamos los cambios en el repositorio

 

Usar Amazon EC2 como servidor git para control de versiones, añadir archivos al repositorio y realizar el primer commit

 

Crear repositorio remoto

ssh usuario@servidor Accederemos por ssh a nuestro servidor remoto, en este caso, nuestra instancia de Amazon EC2 con Ubuntu Server instalado  aquí.

sudo apt-get install git Instalaremos git en el servidor

 

Usar Amazon EC2 como servidor git para control de versiones, instalar git en el servidor

 

cd directorio_servidor_remoto Nos situaremos en el directorio que deseemos usar como repositorio remoto, podemos crear uno previamente.

 

Usar Amazon EC2 como servidor git para control de versiones, acceder al directorio remoto para usar como repositorio

 

git --bare init Iniciamos el repositorio remoto

 

Usar Amazon EC2 como servidor git para control de versiones, iniciar repositorio remoto

 

Asociar repositorio local a uno remoto

cd directorio_repositorio En el equipo local nos volvemos a situar en el directorio en el que hemos creado el repositorio al principio

git remote add nombre_repositorio usuario@servidor:git/directorio_remoto Asociamos el repositorio local al remoto

repositorio_prueba Nombre dado al repositorio

usuario Nuestro nombre de usuario para ssh

servidor Dirección de nuestro servidor ssh para acceso ssh

nombre_repositorio Directorio remoto en el que se encuentra el repositorio

git push  nombre_repositorio master Realizamos los cambios en el repositorio remoto

 

Usar Amazon EC2 como servidor git para control de versiones, asociar repositorio local con repositorio remoto

 

De este modo, tendremos nuestros datos a salvo de cualquier problema con nuestro equipo, además de poder trabajar varias personas en el mismo proyecto, o poder revertir el estado del mismo a cualquier versión anterior de la que se haya hecho un commit.

Es muy recomendable trabajar usando control de versiones, no solo programadores, esto es extensible casi todo tipo de proyectos, y aunque al principio pueda resultar un poco lioso, pronto se le coge el truco y el hábito.

 

Aquí tenéis una chuleta de comandos útiles para usar con git.

 

Instalar LAMP (linux, apache, MySQL, PHP) en Amazon EC2

Vamos a instalar LAMP en nuestro servidor, pero antes de nada, ¿qué es LAMP?

LAMP  es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:

  • Linux – El sistema operativo usado
  • Apache – El servidor web usado
  • MySQL – El gestor de bases de datos usado
  • PHP – El sistema de programación usado

LAMP_software_bundle.svg

 

 

La instalación la vamos a llevar a cabo sobre nuestro servidor Ubuntu Server que hemos instalado en una instancia Amazon EC2 aquí, pero se podría llevar a cabo en cualquier servidor Ubuntu o con base Debian del mismo modo.

 

Para la instalación vamos a usar una herramienta maravillosa, tasksel

tasksel es una herramienta de debian/ubuntu que realiza la tarea de instalación de diversos grupos de programas de una forma cómoda y automatizada en el sistema

 

Nos conectamos por ssh a nuestro servidor

amazon_ec2_lamp_01

 

Ejecutamos

sudo tasksel install lamp-server

 

Nos pedirá la contraseña para el usuario root de MySQL

amazon_ec2_lamp_02

 

Nos pedirá que la volvamos a introducir

amazon_ec2_lamp_03

 

Y ya estará instalado nuestro servidor, podemos comprobar que están instalador y activos

sudo service apache2 status

sudo service mysql status

amazon_ec2_lamp_04

 

Solo nos queda abrir los puerto necesarios para apache, por defecto el 80. Nos vamos al panel de administración de Amazon EC2, y en el menú lateral izquierdo nos vamos a “Security Groups”

amazon_ec2_lamp_05

 

Selecionamos el grupo de seguridad asignado a nuestro servidor, en este caso “quizqlaunch-1”, y en la parte inferior nos aparecerán los detalles, pulsaremos sobre la pestaña “Inbound”

amazon_ec2_lamp_06

 

Aquí tendremos la posibilidad de abrir redireccionar a nuestro servidor los puertos que queramos, por defecto tenemos unas reglas preestablecidas que podemos usar, y par https tenemos una, por lo que la seleccionamos

amazon_ec2_lamp_07

 

Y la añadimos pulsando sobre “Add rule”

amazon_ec2_lamp_08

 

Solo nos quedará aplicar los cambios pulsando sobre “Apply Rule Changes”

amazon_ec2_lamp_09

 

Si abrimos un navegador y nos vamos a nuestra dirección IP varemos la página por defecto de Apache

 

amazon_ec2_lamp_10

 

Ya tenemos nuestro servidor web funcionando y listo para servir nuestras páginas.

 

Usar Amazon EC2 como servidor git para control de versiones/

Crear un servidor en Amazon EC2

En esta entrada vamos a crear una cuenta en Amazon EC2, crear una instancia e instalar ubuntu server en ella.

¿Por qué en Amazon EC2?

Pues para empezar, porqué Amazon nos permite probar su instancia más básica durante un año de forma gratuita. También podemos argumentar su alta escalabilidad, estabilidad y disponibilidad, pero sobre todo, porque es una alternativa a un vps, o a un servidor dedicado, que en mi opinión merece la pena probar. Para los que no sepan de que va esto de Amazon EC2 (elastic compute cloud), podríamos resumirlo mucho diciendo que es una modalidad de servidores en los que pagas por el tiempo de uso que le des al equipo. Podemos ver los detalles en su página oficial, o en la Wikipedia.

 

 ¿Por qué Ubuntu server?

Esto ya es una elección personal, pero me decido por Ubuntu server, en este caso elegiré la última versión LTS, porque es un servidor para “pruebas” y alguna cosilla más, si fuese para un servidor que necesitase ante todo estabilidad quiza eligiese un Debian estable, pero para hacer pruebas prefiero Ubuntu server, por estar más actualizado y poseer una estabilidad bastante alta en su versión LTS. Debian Testing, en este caso lo descarto por ser demasiado “testing” en mi opinión para usar en un servidor. Creo que ya ha quedado claro que soy más de sistemas con base Debian al no haber nombrado otras alternativas perfectamente válidas.

 

 Crear cuenta Amazon EC2

Crearemos una cuenta en Amazon EC2 en la siguiente dirección https://aws.amazon.com/es/ec2/ pulsando en el botón “Crear una cuenta gratuita”

crear_cuenta_amazon_ec2_1

 

 

Introducimos nuestra dirección de correo, e indicamos que somos nuevos usuarios

crear_cuenta_amazon_ec2_2

 

 

Rellenamos nuestros datos

crear_cuenta_amazon_ec2_3

 

En la siguiente pantalla nos pedirá más datos personales y de contacto

crear_cuenta_amazon_ec2_4

 

 

A continuación nos pedirá los datos de una tarjeta de crédito (no nos cobrarán por los servicios gratuitos, que serán los que seleccionaremos mas adelante), que es necesaria para crear la cuenta.

crear_cuenta_amazon_ec2_5

 

 

En la siguiente pantalla nos pedirán la identificación fiscal, por si somos una empresa, para declarar el IVA. Podemos seleccionar  “no aplico IVA”, ya que de todas formas vamos a usar una cuenta sin coste durante un año, y  si decidimos continuar con ella, o ampliarla antes de que finalice el año, siempre podremos introducir la identificación fiscal más tarde

crear_cuenta_amazon_ec2_6

 

 

Ahora nos pedirán confirmar nuestro número de teléfono para que nos llamen y verifiquen nuestra identidad (No olvidarse de seleccionar el país correcto)

crear_cuenta_amazon_ec2_7

 

 

Al pulsar sobre llamar ahora, nos aparecerá un código de cuatro números en la pantalla, y en breve recibiremos una llamada en inglés, los que no dominéis el idioma, tranquilos, lo único que os dice es que introduzcáis el código que os apareceió en la pantalla, esperáis a que termine de hablar e introducís el código en el teléfono.

A continuación nos indicará en la pantalla de nuestro PC que nuestra identidad a sido verificada, y podremos continuar a la siguiente pantalla, en la que deberemos seleccionar el tipo de plan que queremos, nosotros seleccionaremos el Básico, por ser el gratuito

crear_cuenta_amazon_ec2_8

 

 

Y ya tendremos nuestra cuenta lista.

crear_cuenta_amazon_ec2_9

Para acceder a la consola de administración, haremos click en el enlace “Lanzar AWS Management Console”, y a continuación en “Inicie sesion en AWS Console”, o accederemos a la url httpss://console.aws.amazon.com/console

 

Crear nuestra instancia

Ahora vamos a crear nuestra instancia, que es como si fuese nuestra máquina. Este es aspecto de la consola de administración

crear_instancia_amazon_ec2_1

 

Arriba a la derecha tenemos la región en la que estamos, ya que podemos crear instancias en distintas regiones, lo ideal es seleccionar una región lo más próxima a nuestra localización (o quizás mejor dicho a la de nuestros visitantes o usuarios), para tener una latencia menor. En este caso la mejor opción para mi sería la de Irlanda, ya que es la única disponible en Europa, sin embargo, voy a dejar la de Virginia, que aparece por defecto, ya que como es para usar haciendo pruebas y test, me interesa tener una IP pública en EEUU.

En el lado izquierdo tenemos un menú con algunas partes que voy a comentar, aunque más tarde las usaremos:

  • EC2 Dashboard: Es el panel de administración en el que estamos.
  • Instances: Son nuestras instancias, tanto las que tengamos lanzadas como las que estén paradas se encontrarán aquí. Es importante saber que si creamos más de una, por la segunda nos cobrarán.
  • AMIs: Es en donde encontraremos las imágenes para la instalación de nuestro servidor.
  • Volumes: Aquí aparecerán los volúmenes (discos duros) que tengamos creados, tanto si  los tenemos conectados a nuestra maquina como si no. Al igual que con las instancias, si creamos más de uno, nos cobrarán por el segundo.
  • Snapshots: Amazon nos permite crear imágenes de nuestro volúmenes. Estas se almacenarán aquí.
  • Security Groups: Aquí aparecerán los grupos de seguridad que hayamos creado. Un grupo de seguridad es en donde definiremos las políticas de NAT y redirecciones.
  • Elastic IPs: Son las direcciones IP públicas que tengamos añadidas. Si tenemos una dirección IP sin asignar a alguna instancia, se nos cobrará por ella.
  • Keys Pairs: Son los pares de claves publica-privada que usaremos por defecto para acceder de forma segura a nuestro servidor.

 

Para crear nuestra instancia, pulsamos sobre “Launch Instance”

crear_instancia_amazon_ec2_2

 

Seleccionaremos en las opciones de la izquierda “Quick Launch Wizard”. En la derecha arriba del todo pondremos el nombre que identificará en el panel de control nuestra instancia, debajo seleccionaremos “Create new”, debajo pondremos un nombre para nuestra clave privada, y a continuación la descargaremos (Es importante conservarla en un lugar seguro, ya que es la clave privada que nos dará acceso a nuestra máquina). El último paso en esta pantalla es seleccionar el sistema operativo que queremos, en este caso seleccioné Ubuntu Server 12.04 LTS. Si seleccionáis otro, tened en cuenta que no todos son gratuitos, solo los que tienen la estrella y ponen debajo “Free tier eligible”. Ya podremos continuar.

 

En esta pantalla pulsamos sobre “Edit details”

crear_instancia_amazon_ec2_3

 

 

Aquí podremos editar los detalles de nuestra instancia como la zona, el tipo (solo la t1.micro es gratuita), etc. Cambiamos solo la zona, y vemos que solo nos dejará seleccionar zona de USA

crear_instancia_amazon_ec2_4

 

Guardamos los cambios con “save details” y la lanzamos con “Launch”

 

crear_instancia_amazon_ec2_5

 

Ya podemos cerrar este asistente y volveremos al panel de control al apartado “Instances”, en “state” podremos comprobar que la instancia está corriendo, y en “Status Checks”, que se está inicializando. Toca esperar a que se inicialice

crear_instancia_amazon_ec2_6

 

 

Cuando el campo “Status Checks” nos salga lo siguiente ya estará lista la instancia

crear_instancia_amazon_ec2_7

 

 

En el menú “Elastic IPs” creamos una nueva

crear_elastic_ip_amazon_ec2_1

 

 

Hacemos click derecho sobre ella y seleccionamos “Associate”, seleccionamos nuestra instancia para asociarla a ella, yt pulsamos “Yes, Associate”

crear_elastic_ip_amazon_ec2_2

 

 

Y ya podremos acceder a nuestra máquina por ssh (debemos aplicar permisos 700 a nuestra clave, de no hacerlo, además de ser un riesgo, no nos podremos conectar, para hacerlo chmod 700 archivo.pem)

ssh -i ruta_a_nuestra_key_pair.pem ubuntu@direccion_ip

amazon_ec2_ssh

 

Bueno, para esta entrada creo que ya es suficiente, más a delante si os interesa podremos profundizar más temas sobre EC2, su configuración y uso. Espero que os sea útil y vuestros comentarios para ver si continuo con el tema.

 

Instalar LAMP (linux, apache, MySQL, PHP) en Amazon EC2

Usar Amazon EC2 como servidor git para control de versiones/