Giter Club home page Giter Club logo

openstackdi's Introduction

OpenStack-DI

di

Resumen

OpenStack-DI es el servicio de Infraestructura como servicio (IaaS) del Departamento de Informática de la Universidad de Almería. Actualmente ofrece servicios de máquinas virtuales y almacenamiento de volúmenes.

OpenStack-DI además, es el soporte para el resto de servicios cloud del Departamento (Cloud-DI), como son servidores virtuales para almacenamiento de archivos, gestión de proyectos, control de versiones, automatización de tareas y autenticación de usuarios.

Objetivo
  • Ofrecer Infraestructura como servicio de apoyo a docencia e investigación.

1. Servicios que ofrece OpenStack-DI

OpenStack-DI es el proyecto de Cloud-DI que ofrece Infraestructura como servicio. Pese a ser el proyecto de base sobre el que se sustenta el cloud del Departamento de Informática, lo consideramos como un componente más.

Actualmente, OpenStack-DI ofrece:

  • Servicios para la creación de Máquinas y laboratorios virtuales.

  • Servicios de Almacenamiento para la creación de volúmenes.

2. Servicios que ofrece Cloud-DI

Algunos de los servidores del Departamento de Informática, como los de control de versiones y gestión de proyectos, son realmente máquinas virtuales creadas dentro de OpenStack-DI.

3. Infraestructura de OpenStack-DI

3.1. Plataforma de producción

  • Servidores de cómputo: 12

  • RAM disponible: 2.304 GB

  • Núcleos: 384

  • Espacio disponible para instancias: 32,4 TB

  • Almacenamiento disponible para volúmenes: 21,7 TB

3.2. Plataforma de pruebas

  • Servidores de cómputo: 3

  • RAM disponible: 94,2 GB

  • Núcleos: 48

  • Espacio disponible para instancias: 1.9 TB

  • Almacenamiento disponible para volúmenes: 10,8 TB

  • Almacenamiento de objetos

  • Almacenamiento de archivos compartido

4. Acceso a Cloud-DI

Todos los recursos de Cloud-DI, ya sean de OpenStack-DI, o servidores de apoyo a docencia de Cloud-DI, sólo son accesibles desde la red de la UAL.

Warning

Para el acceso a los recursos de Cloud-DI desde fuera de la UAL será necesario usar una conexión VPN. Consulta vpn.ual.es para configurar tu acceso a la VPN de la UAL.

5. Primeros pasos en OpenStack-DI

Para utilizar OpenStack-DI es necesario disponer de una cuenta de usuario. El acceso sólo está permitido desde la red de la UAL. El acceso desde fuera de la UAL se realizará mediante VPN.

5.1. Solicitud de cuenta de usuario

  1. Solicita a [email protected] tu acceso a OpenStack-DI. Te proporcionarán un dominio, un login y un password de acceso.

  2. Introduce tus credenciales en openstack.di.ual.es. Una vez dentro del sistema tendrás acceso a un proyecto OpenStack.

    Note

    Un proyecto OpenStack es un conjunto de recursos disponible para uno o más usuarios. Ejemplos de recursos básicos son los núcleos de procesador (VCPU), RAM o espacio de almacenamiento.

    De forma predeterminada cada usuario tiene un proyecto. No obstante, un mismo usuario puede ser miembro de más de un proyecto (p.e. Laboratorio ARSO, TIC-211, Laboratorio Sistemas de Información)

5.2. Cambio de la contraseña

Para cambiar la clave proporcionada despliega el menú de las opciones del usuario conectado situado en la parte superior derecha y selecciona Settings.

Settings

Se desplegará un menú en la izquierda. A continuación, selecciona Change password.

ChangePassword

5.3. Registra tus claves SSH

Para el acceso SSH a máquinas virtuales Linux es necesario registrar la clave SSH pública en la cuenta de usuario OpenStack. Las clave pública SSH será inyectada a las instancias creadas en el proceso de inicialización.

  1. Inicia sesión en OpenStack-DI (openstack.di.ual.es).

  2. En el menú de la izquierda selecciona Project | Compute | Key Pairs

  3. Si dispones de una clave SSH, pulsa el botón Import Key Pair. En el formulario, introduce en Key Pair Name el nombre que quieres asignar a tu clave pública en OpenStack y pega tu clave pública en el cuadro de texto Public Key.

    ImportKeyPair
    Note

    En el mismo formulario de importación de claves SSH aparecen los pasos a seguir en sistemas Linux o Mac para crear tu clave SSH. También puedes usar esos comandos en sistemas Windows si tienes instalado un emulador BASH como Git Bash

    Tip

    Instala Git for Windows en tu sistema Windows. Este software, además de instalar Git para control de versiones, instalará Git BASH en tu sistema, un emulador BASH que te será muy útil para la conexión SSH a máquinas virtuales Linux desde tu sistema Windows.

  4. Si no dispones de una clave SSH o bien no quieres o no puedes generarla, OpenStack puede crear tu par de claves. Para crear tu par de claves desde OpenStack pulsa el botón Create Key Pair. Introduce en el formulario el nombre que quieras a dar a tu clave SSH.

    CreateKeyPair

    A continuación, pulsa el botón Create Key Pair. Descarga la clave generada.

    DownloadKeyPair

5.4. Configuración de las Reglas de seguridad

En OpenStack, cada proyecto tiene sus propias reglas de seguridad, y funcionan a modo de cortafuegos sobre las instancias definidas en el proyecto.

De forma predeterminada, las instancias creadas no se pueden comunicar con el exterior. Configura las reglas de seguridad (p.e. abriendo los puertos SSH, RDP para escritorio remoto de Windows, HTTP para servidores web, …​) de tu proyecto para que se pueda acceder de forma adecuada a las instancias.

La configuración básica de las reglas de seguridad se puede realizar en el menú Project | Network | Security Groups. Desde ahí podrás configurar las reglas predeterminadas (default) para todas las máquinas virtuales de un proyecto o crear nuevos grupos de seguridad con reglas específicas.

Pulsando el botón Manage Rules accedemos a las reglas de seguridad predeterminadas (default) de este proyecto. Por tanto, las máquinas virtuales creadas en este proyecto a las que se apliquen las reglas de seguridad default tendrían abierta la comunicación de acuerdo con las reglas indicadas en el grupo de seguridad.

Grupos de seguridad
Note

De forma predeterminada, el grupo de seguridad default no incorpora ninguna regla de seguridad. Hasta que no se le añadan reglas de seguridad, o se creeen grupos de seguridad que añadan reglas de seguridad, no será posible establecer comunicación con las instancias creadas.

Pulsa el botón Add Rule para añadir reglas de seguridad. En el formulario selecciona la regla de seguridad aplicable a las instancias.

AddRule
Note

Reglas se seguridad básicas:

  • RDP (puerto 3389): Acceso de Escritorio remoto. Util para conexión a instancias Windows.

  • HTTP (puerto 80): Util para aplicaciones web con servidor Apache.

  • SSH (puerto 22): Para establecer una conexión SSH. Util para conexión a la terminal de instancias Linux.

Grupos de seguridad
Important

El STIC sólo tiene abiertos en la red Cloud-DI los puertos 80 (HHTP), 22 (SSH) y 3389 (RDP) para la conexión VPN. No podrás establecer conexiones a otros puertos desde fuera de la UAL aunque estés usando la conexión VPN.

Consulta la guía de uso oficial de OpenStack

Para más información sobre la configuración del acceso y seguridad de las instancias consulta la Guía de uso oficial de OpenStack

5.5. Creación de una máquina virtual

Puedes crear una máquina virtual seleccionando Project | Compute | Instances y pulsando el botón Launch instance.

LaunchInstanceButton

En el asistente deberás proporcionar:

  • Paso 1: Nombre de la instancia y cantidad de instancias a crear. La zona de disponibilidad siempre es nova. El formulario también muestra el total de instancias (máquinas virtuales) creadas y disponibles.

LaunchInstanceDetails
  • Paso 2: En la fuente, selecciona Image o Image snapshot dependiendo de si quieres crear una instancia a partir de una imagen limpia o de un snapshot, respectivamente. La selección de la imagen base para la instancia se realizará a partir del cuadro inferior, el cual se podrá filtrar introduciendo en el cuadro de búsqueda alguno de los caracteres del nombre de la imagen.

Note

Las imágenes de Windows y de XUbuntu están disponibles como Image snapshot, no como Image.

Important

Desactiva la creación de un nuevo volumen asociado a la instancia. Si más adelante necesitas crear uno o más volúmenes para tu instancia, podrás crearlos desde el menú de volúmenes (Project | Compute | Volumes).

Selección de una imagen base para la instancia
  • Paso 3. Sabor de las instancias creadas. OpenStack denomina sabor a un conjunto de propiedades que representan las características hardware de las instancias a crear (número de cores, RAM, espacio de disco). Selecciona un sabor adecuado para la instancia a crear.

LaunchInstanceFlavor
Note

Una señal de advertencia puede estar indicando un sabor demasiado pequeño para la instancia a crear o una superación de la cuota de los recursos del proyecto.

  • Paso 4. Red a la que conectar la instancia creada. Seleccionar entre las redes disponibles la red a la que conectar la máquina virtual. Normalmente, conectaremos la instancia en la red del proyecto, aunque es posible conectarla a cualquier otra red que tengamos creada.

LaunchInstanceNetworks
  • Paso 5. Selección de grupos de seguridad. Los grupos seleccionados estableceran los puertos y el tipo de comunicación permitida con la instancia creada. Selecciona todos los grupos de seguridad aplicables a la instancia creada.

LaunchInstanceSecurityGroups
  • Paso 6. Selección de la clave pública. Para instancias Linux deberemos seleccionar la clave pública a inyectar a la instancia creada. Dicha clave será la que se emparejará con nuestra clave privada local en el momento de la conexión SSH.

LaunchInstanceKeyPair

Pulsar el botón Launch Instance para proceder a la creación de la instancia. Tras unos instantes la instancia estará creada y disponible para su uso.

Note

En máquinas Windows no es necesario inyectar la clave pública.

Consulta la guía de uso oficial de OpenStack

Para más información sobre la creación de instancias consulta la Guía de uso oficial de OpenStack

5.6. Asignación de IP flotante

Las instancias creadas son conectadas a una de las redes privadas de un proyecto OpensStack. Inicialmente, es posible la comunicación entre las instancias de dicha red. Pero de forma predeterminada, no es posible la conexión a la instancia creada desde nuestro equipo de trabajo, o en general, desde otro equipo que esté fuera de la red del proyecto en el que se ha creado la máquina virtual.

Podemos ver la instancia creada y conectada a la red del proyecto en el menú Project | Network | Network Topology.

NetworkTopology

Las IPs flotantes son la base para la comunicación con la instancia desde fuera de la red donde fue creada. Nuestro proyecto tiene una cuota de IPs flotantes y deberemos gestionarlas de forma eficiente.

Para asignar una IP flotante a una instancia, mostrar en primer lugar la lista de instancias (Project | Compute | Instances). A continuación, seleccionar Associate Floating IP en el menú desplegable de la instancia.

AssociateFloatingIP

En el formulario, pulsar el botón + para pedir una IP flotante.

ManageFloatingIPAssociations

El formulario siguiente muestra la red que propocionará las IPs flotantes (ext-net), que es la red que el STIC proporciona a Cloud-DI. En este formulario pulsaremos el botón Allocate IP.

AllocateFloatingIP
Note

El STIC tiene reservada la red 192.168.64.0/21 para Cloud-DI. Cloud-DI Team ha reservado un pequeño conjunto de estas IPs para la gestión del propio cloud, quedando como pool de direcciones IPs disponibles desde 192.168.64.21 hasta 192.168.71.255, lo que supone más de 2000 direcciones IP para máquinas virtuales.

De vuelta al formulario, se mostrará la IP flotante asignada de la red ext-net. Pulsar el botón Associate.

AssignedFloatingIP

Ahora la instancia aparecerá con la IP flotante asignada, la cual podremos usar para conectarnos a ella desde fuera de la red privada de OpenStack en la que se creó.

InstanceWithFloatingIP

5.7. Conexión a la máquina virtual

Una vez creada la máquina virtual y asignada una IP flotante en el caso de que queramos conectarnos a ella desde una red diferente a la que fue creada, usaremos un cliente para conectarnos a ella usando un cliente.

Table 1. Clientes habituales de conexión a máquinas virtuales
Sistema operativo Uso Cliente recomendado

Linux

Terminal

Terminal

Linux con Interfaz gráfica

X2Go

Máquina Windows

Remmina

Mac

Terminal

Terminal

Linux con Interfaz gráfica

X2Go

Máquina Windows

Microsoft Remote Desktop

Windows

Terminal

Git BASH, Putty

Linux Interfaz gráfica

X2Go

Máquina Windows

Cliente de escritorio remoto

6. Imágenes disponibles en OpenStack-DI

Actualmente están disponibles las imágenes siguientes en OpenStack-DI:

Table 2. Imágenes en OpenStack-DI y modos de acceso
Image Login Modo de acceso

Ubuntu 16.04 LTS

ubuntu

Key Pair

CentOS 6

centos

Key Pair

cirros

cirros

Key Pair

Xubuntu 16.04 LTS

clouduser

Contraseña

Windows Server 2012

Administrator

Contraseña

Note

Contacta con [email protected] para obtener la contraseña para instancias en las que el modo de acceso no sea con Key Pair.

7. Uso de volúmenes en OpenStack-DI

OpenStack ofrece un servicio de almacenamiento de bloques, lo que nos permite poder crear volúmenes y conectarlos a máquinas virtuales. Los volúmenes nos dan almacenamiento persistente, entendido como que el volumen se conserva a pesar de que se elimine la máquina virtual a la que está conectado.

7.1. Creación de un volumen

  1. Inicia sesión en OpenStack-DI.

  2. Selecciona el proyecto en el que crear el volumen.

  3. En el menú de la izquierda selecciona Project | Compute | Volumes.

  4. En la pestaña Volumes pulsa el botón Create Volume.

    CreateVolumeButton
  5. En el formulario introduce los valores para el nombre del volumen y el tamaño.

    CreateVolume
  6. Pulsa el botón Create Volume.

Tras unos instantes el volumen aparecerá en la lista de volúmenes creados y disponible para ser conectado a una instancia.

7.2. Conexión de un volumen a una instancia

Una vez creado un volumen, éste puede ser conectado a una instancia.

Important

Un volumen sólo puede estar conectado a una instancia. Para conectarlo a otra instancia, el volumen tendrá que ser desconectado previamente.

  1. Inicia sesión en OpenStack-DI.

  2. Selecciona el proyecto en el que crear el volumen.

  3. En el menú de la izquierda selecciona Project | Compute | Volumes.

  4. En la pestaña Volumes selecciona el volumen que quieras conectar a una instancia, despliega el listbox de Actions y selecciona Manage Attachments.

    ManageAttachmentsOption
  5. Selecciona en el formulario la instancia a la que conectar el volumen.

ManageVolumeAttachments

Tras unos instantes el volumen aparecerá conectado a la instancia indicando que está en uso y el dispositivo en el que está disponible.

VolumeAttached

A continuación sigue los pasos del sistema operativo en el que se haya conectado el volumen para inicializarlo (crear tabla de particiones, formatear, montar, …​)

Consulta la guía de uso oficial de OpenStack

Para más información sobre la creación y administración de volúmenes consulta la Guía de uso oficial de OpenStack

7.3. Transferir un volumen a otro proyecto

Un volumen sólo se puede utilizar en el proyecto al que pertence, pudiendo intercambiarse entre las distintas máquinas virtuales del proyecto. Sin embargo, hay situaciones en las que estamos interesados en usar un volumen en una instancia que tenemos en otro proyecto, o transferir el volumen a otro usuario de OpenStack-DI. Esta operación es la que se conoce como Transferir un volumen en OpenStack.

  1. Inicia sesión en OpenStack-DI.

  2. Selecciona el proyecto en el que crear el volumen.

  3. En el menú de la izquierda selecciona Project | Compute | Volumes.

  4. En la pestaña Volumes selecciona el volumen que quieras transferir, despliega el listbox de Actions y selecciona Create Transfer.

    CreateTransferOption
  5. Introduce un nombre significativo de la transferencia para que pueda ser identificado claramente por otras personas en el caso de que se vaya a transferir el volumen a otro usuario OpenStack.

    CreateVolumeTransfer
  6. Pulsa el botón Create Volume Transfer. Como resultado se nos mostrará un ID de transferencia y una clave de autorización que debemos conservar para poder completar el proceso de transferencia del volumen.

    VolumeTransferDetails
  7. Descargar el arvhivo con los datos de la transferencia pulsando el botón Download transfer credentials. El volumen quedará pendiente de que se complete el proceso aceptando la transferencia.

    AwaitingTransfer
  8. En el proyecto de destino de la transferencia pulsar el botón Accept Transfer.

  9. Introducir en el formulario los valores de ID de transferencia y Clave de autorización que descargamos en el archivo de credenciales de la transferencia

    AcceptVolumeTransfer
  10. Pulsar el botón Accept Volume Transfer. El volumen aparecerá transferido en la lista de volúmenes disponibles del proyecto de destino.

8. Aprovisionamiento de una instancia durante la creación

Al crear una instancia en OpenStack-DI es posible aprovisionarla (configurarla) durante su proceso de creación. De esta forma, nuestras instancias ya tendrán instalados y configurados los paquetes necesarios.

La configuración de una instancia se realiza en el paso de Configuration del asistente. Básicamente, hay que incluir un sript bash en el cuadro de texto Customization Script tal y como muestra la figura siguiente.

configuracion

A continuacion, se muestra el script de configuración de Docker CE en una instancia Ubuntu durante su creación.

#!/bin/bash

echo "Instalando Docker"

apt-get update
apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
apt-get update
apt-get install -y docker-ce
groupadd docker
usermod -aG docker ubuntu
systemctl enable docker

echo "Instalando Docker Compose"
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

exit 0

9. Próximamente

Actualmente tenemos en fase de prueba y listos para pasar a producción los siguientes componentes de OpenStack:

  • Orquestación de recursos OpenStack

  • Balancedor como servicio (LBaaS)

  • Almacenamiento de objetos

  • Almacenamiento compartido de archivos

  • Servicio de telemetría y alarma

  • Contenedores como servicio (CaaS)

  • Framework de procesamiento Big Data

openstackdi's People

Contributors

ualmtorres avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.