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, almacenamiento como servicio (almacenamiento de bloques y volúmenes NFS) y balanceadores como servicio.
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.
-
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, tanto de bloques como volúmenes NFS.
-
Balanceadores como servicio.
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.
-
Almacenamiento de archivos (owncloud.di.ual.es). Actúa como un _Dropbox privado.
-
Gestión de proyectos/peticiones (redmine.di.ual.es)
-
Control de versiones Git (gitlabdoc.ual.es)
-
Control de versiones Subversion (svndoc.ual.es)
-
Automatización de tareas (jenkins.di.ual.es)
-
Moodle (moodle.di.ual.es)
-
Autenticación de usuarios (ldap.di.ual.es)
3. Infraestructura de OpenStack-DI
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.
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
-
Solicita a clouddi@ual.es tu acceso a OpenStack-DI. Te proporcionarán un dominio, un login y un password de acceso.
-
Introduce tus credenciales en openstack.di.ual.es. Una vez dentro del sistema tendrás acceso a un _proyecto OpenStack.
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
.
Se desplegará un menú en la izquierda. A continuación, selecciona Change password
.
5.3. Generación de claves SSH
Las claves SSH ofrecen una forma más segura de conexión remota ya que evitan la introducción de usuario y contraseña en los inicios de sesión, reduciendo el riesgo de ataques de fuerza bruta para descubrimiento de contraseñas. Además, suponen una opción más cómoda de inicio de sesión, ya que evitan el recordar las contraseñas en cada conexión.
Las claves SSH se generan en pares, dando lugar a la clave privada y a la clave pública. La clave privada ha de ser protegida y no debe ser compartida con nadie. La clave pública puede ser compartida libremente y se insertará en las instancias en el momento de su creación.
Para generar un par de claves SSH, ejecuta el comando siguiente en una terminal Linux o Mac. Para usuarios Windows se recomienda usar Git for Windows, disponible al instalar Git.
ssh-keygen
Si no indicamos otro nombre, esto genera dos archivos con los nombres id_rsa
e id_rsa.pub
que se almacenarán en la carpeta home
del usuario en la rutas:
-
Clave privada:
/home/user/.ssh/id_rsa
-
Clave pública:
/home/user/.ssh/id_rsa.pub
También se pedirá la introducción de una contraseña para el uso del par de claves. Por ahora, lo dejaremos sin contraseña.
5.4. 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.
-
Inicia sesión en OpenStack-DI (openstack.di.ual.es).
-
En el menú de la izquierda selecciona
Project | Compute | Key Pairs
-
Si dispones de una clave SSH, pulsa el botón
Import Key Pair
. En el formulario, introduce enKey Pair Name
el nombre que quieres asignar a tu clave pública en OpenStack y pega tu clave pública en el cuadro de textoPublic Key
.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
Si eres usuario de Windows, se recomienda instala Git for 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.
-
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.A continuación, pulsa el botón
Create Key Pair
. Descarga la clave generada.
5.5. 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.
De forma predeterminada, el grupo de seguridad |
Pulsa el botón Add Rule
para añadir reglas de seguridad. En el formulario selecciona la regla de seguridad aplicable a las instancias.
Reglas se seguridad básicas:
|
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. |
5.6. Creación de una máquina virtual
Puedes crear una máquina virtual seleccionando Project | Compute | Instances
y pulsando el botón Launch instance
.
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.
-
Paso 2: En la fuente, selecciona
Image
oImage 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.
Las imágenes de Windows y de XUbuntu están disponibles como Image snapshot, no como Image. |
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 ( |
-
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.
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.
-
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.
-
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.
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.
En máquinas Windows no es necesario inyectar la clave pública. |
5.7. Iniciar, reiniciar y apagar una máquina virtual
Puedes iniciar, reiniciar y apagar una máquina virtual desplegando las acciones que aparecen a su lado en el listado de instancias del proyecto Project | Compute | Instances
.
-
Iniciar instancia:
Start Instance
-
Apagar instancia:
Shutoff Instance
-
Reiniciar instancia:
Soft Reboot Instance
oHard Reboot Instance
No confundir |
5.8. 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
.
Las IPs flotantes son la base para la comunicación con la instancia desde el exterior. 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.
En el formulario, pulsar el botón +
para pedir una IP flotante.
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
.
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
.
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ó.
5.9. 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.
Sistema operativo | Uso | Cliente recomendado |
---|---|---|
Linux |
Terminal |
Terminal |
Linux con Interfaz gráfica |
||
Máquina Windows |
||
Mac |
Terminal |
Terminal |
Linux con Interfaz gráfica |
||
Máquina Windows |
||
Windows |
Terminal |
Git BASH, Putty |
Linux Interfaz gráfica |
||
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:
Image | Login | Modo de acceso |
---|---|---|
Ubuntu 16.04 LTS y Ubuntu 18.04 LTS |
ubuntu |
Key Pair |
CentOS 6 y Centos 7 |
centos |
Key Pair |
Fedora 27 |
fedora |
Key Pair |
cirros |
cirros |
Key Pair |
Windows Server 2012 R2 |
Administrator |
Contraseña |
Contacta con clouddi@ual.es para obtener la contraseña para instancias en las que el modo de acceso no sea con Key Pair. |
6.1. Subir una imagen
Normalmente la subida de imágenes es una tarea que se debe dejar a los técnicos de OpenStack-DI. No obstante, si se trata de imágenes sin interés para uso general, se pueden seguir estos pasos para tener una imagen disponible en el proyecto personal.
Las imágenes se subirán en formato QCOW2 y OpenStack matiene una página con enlaces a descargas de imágenes configuradas para ejecutarse en modo cloud (con el paquete cloud-init
, soporte para el acceso mediante claves SSH e inyección de datos de usuario.
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que crear la imagen.
-
En el menú de la izquierda selecciona
Project | Compute | Images
. -
Pulsa el botón
Create Image
. -
En el formulario completa los datos siguientes:
-
Nombre de la imagen (p.e.
openSsure Leap 15.1
). -
`Image Source: Introduce el archivo con la imagen descargada.
-
Format
: SeleccionarQCOW2
. -
Protected
: Indica si las configuraciones establecidas enRawdisk, Minimum Disk, Minimum RAM
pueden ser modificadas por otros usarios a los que le diéramos permiso de uso sobres esta imagen en el caso de hacerla pública.
-
-
Tras pulsar
Create Image
se procederá a la subida y creación de la imagen.
La imagen aparecerá tras unos instantes en la lista de imágenes disponibles.
6.2. Proteger/Desproteger una imagen
En una imagen se puede proteger la configuración de parámetros como RAM y disco mínimo para poder crear instancias a partir de ella. Una imagen protegida impedirá que otros usuarios puedan modificar estos valores.
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que proteger la imagen.
-
En el menú de la izquierda selecciona
Project | Compute | Images
. -
Selecciona la imagen a proteger, despliega el listbox de
Actions
y seleccionaEdit Image
. -
Pulsa en los botones
Yes | No
deProtected
enImage Sharing
. -
Aplica los cambios pulsando el botón
Update Image
.
6.3. Crear snapshot de una instancia
Un snapshot es una imagen creada a partir del estado del disco de una instancia a modo de fotografía de una instancia. El snapshot creado puede ser usado posteriormente para crear nuevas instancias, lo que lo hace una buena opción para la distribución de instancias con software preinstalado y configuraciones aplicadas.
-
Inicia sesión en OpenStack-SI.
-
Selecciona el proyecto en el que crear el snapshot.
-
En el menú de la izquierda selecciona
Project | Compute | Instances
. -
Selecciona la instancia a la que crear el snapshot y selecciona
Create Snapshot
en el listbox deActions
de la instancia.
Tras unos instantes, el snapshot estará creado y listo para ser replicado.
Los snapshots no son etiquetados como imágenes, sino como snapshot images Es importante tener esto en cuenta porque a la hora de crear una instanncia a a partir de ellos, habrá que seleccionar snapshot images como origen de la instancia en el Asistente para la creación de instancias. No obstante, esto se puede modificar cambiando los metadatos del snapshot, cambiando los valores de las propiedades |
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
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que crear el volumen.
-
En el menú de la izquierda selecciona
Project | Compute | Volumes
. -
En la pestaña
Volumes
pulsa el botónCreate Volume
. -
En el formulario introduce los valores para el nombre del volumen y el tamaño.
-
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.
Un volumen sólo puede estar conectado a una instancia. Para conectarlo a otra instancia, el volumen tendrá que ser desconectado previamente. |
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que crear el volumen.
-
En el menú de la izquierda selecciona
Project | Compute | Volumes
. -
En la pestaña
Volumes
selecciona el volumen que quieras conectar a una instancia, despliega el listbox deActions
y seleccionaManage Attachments
. -
Selecciona en el formulario la instancia a la que conectar el volumen.
Tras unos instantes el volumen aparecerá conectado a la instancia indicando que está en uso y el dispositivo en el que está disponible.
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, …)
7.3. Desconexión de un volumen
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que está el volumen a desconectar.
-
En el menú de la izquierda selecciona
Project | Volumes
. -
En la pestaña
Volumes
selecciona el volumen que quieras desconectar a una instancia, despliega el listbox deActions
y seleccionaManage Attachments
. -
Pulsa el botón
Detach Volume
para desconectar el volumen de la instancia
A continuación aparecerá un cuadro de diálogo de confirmación. Pulsar el botón Detach Volume
para liberar el volumen de la instancia.
7.4. Extender un volumen
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que está el volumen a desconectar.
-
En el menú de la izquierda selecciona
Project | Volumes
.Desconecta el volumen antes de ampliarlo.
-
En la pestaña
Volumes
selecciona el volumen que quieras extender, despliega el listbox deActions
y seleccionaExtend Volume
. -
Configura el nuevo tamaño del volumen en el formulario.
7.5. 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.
Para transferir un volumen, éste ha de estar desconectado. Consulta la sección Desconexión de un volumen |
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que crear el volumen.
-
En el menú de la izquierda selecciona
Project | Compute | Volumes
. -
En la pestaña
Volumes
selecciona el volumen que quieras transferir, despliega el listbox deActions
y seleccionaCreate Transfer
. -
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.
-
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. -
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. -
En el proyecto de destino de la transferencia pulsar el botón
Accept Transfer
. -
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
-
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.
A continuacion, se muestra el script de configuración de Docker CE en una instancia Ubuntu durante su creación.
9. Almacenamiento compartido de archivos (NFS)
OpenStack-DI permite la creación de volúmenes NFS y ser compartidos por varias instancias. Los volúmenes NFS nos dan almacenamiento persistente, de forma que el volumen se conserva a pesar de que se eliminen las máquinas virtuales a las que esté conectado.
9.1. Creación de un volumen NFS
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que crear el volumen.
-
En el menú de la izquierda selecciona
Project | Compute | Shares
. -
En en submenú
Shares
pulsa el botónCreate Share
. -
En el formulario introduce los valores para el nombre del volumen NFS, el tamaño y el tipo de volumen NFS (
default_share_type
). MantenerNFS
como protocolo. -
Pulsa el botón
Create
.
Tras unos instantes, el volumen NFS aparecerá en la lista de volúmenes creados y disponible para ser conectado a las instancias necesarias.
9.2. Configuración de las reglas de acceso
Una vez creado un volumen NFS, hay que configurar las reglas de acceso que permiten su uso desde las distintas instancias que lo tengan conectado.
Es posible definir reglas de acceso diferentes para cada instancia (p.e. una instancia tiene acceso de lectura/escritura mientras que el resto sólo lo tienen de lectura). |
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el está creado el volumen.
-
En el menú de la izquierda selecciona
Project | Compute | Shares
. -
En en submenú
Shares
selecciona el volumen NFS que quieras configurar, despliega el listboxActions
y seleccionaManage Rules
. -
Pulsa el botón
Add Rule
-
Completa el formulario
Add Rule
con las reglas de acceso al volumen NFS. A continuación se muestra cómo dar acceso de lectura/escritura vía IP a la dirección IP192.168.67.2
. -
Pulsar
Add
para definir la regla de acceso.
Aparerá la regla definida para el volumen NFS.
Las reglas no se pueden modificar. Habrá que eliminarla y volver a crearla de nuevo |
Para dar acceso a varias máquinas virtuales, basta con añadir nuevas reglas indicando la IP el nivel de acceso deseado. |
9.3. Conexión de un volumen NFS a una instancia
Una vez definidas las reglas de acceso a un volumen NFS procederemos a conectarlo a una instancia.
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que está creado el volumen NFS.
-
En el menú de la izquierda selecciona
Project | Compute | Share
. -
En el submenú
Shares
haz clic sobre el nombre volumen NFS que quieras conectar a una instancia. -
En la página aparecen los detalles definidos con las reglas de acceso. Copia el valor de
Path
. Este será el valor que usaremos en las instancias que monten este volumen. -
Selecciona en el formulario la instancia a la que conectar el volumen y después pulsa el botón
Attach Volume
A continuación sigue los pasos del sistema operativo en el que se haya conectado el volumen para inicializarlo y usarlo (crear tabla de particiones, formatear, montar, …)
$ sudo apt install -y nfs-common (1)
$ sudo mkdir /mnt/proyectos (2)
$ sudo mount 192.168.64.17:/var/lib/manila/mnt/share-29ffbd8a-b1bc-403d-94b0-8b3f991aa0a4 /mnt/proyectos (3)
1 | Instalación de paquetes NFS |
2 | Creación del directorio donde montar el volumen NFS |
3 | Montar el volumen NFS en el directorio creado usando el path devuelto en las propiedades del volumen NFS. |
Podemos comprobar que el volumen está creado
9.4. Extender un volumen NFS
Los volúmenes NFS pueden ser extendidos y esta operación se puede hacer en caliente, sin necesidad de desconectar el volumen previamente.
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que está creado el volumen NFS.
-
En el menú de la izquierda selecciona
Project | Compute | Share
. -
En el submenú
Shares
despliega el menúActions
del volumen NFS que quieras extender y seleccionaExtend Share
. -
Define el nuevo tamaño del volumen y pulsa el botón
Extend
.
Se puede comprobar que, tras extender el volumen, el espacio aparece disponible de inmediato.
9.5. Eliminar un volumen NFS
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que está creado el volumen NFS.
-
En el menú de la izquierda selecciona
Project | Compute | Share
. -
Asegúrate que no hay instancias que estén usando el volumen NFS a eliminar.
-
En el submenú
Shares
despliega el menúActions
del volumen NFS que quieras eliminar y seleccionaDelete Share
. -
Confirma su eliminación en el cuadro de diálogo.
10. Balanceadores como servicio (LBaaS)
OpenStack-DI ofrece un servicio muy interesante para poder crear balanceadores de carga. Los balanceadores definidos podrán distribuir las peticiones entre cada uno de los miembros del conjunto de recursos balanceados. LBaaS nos pemitirá definir varios pools de recursos, cada uno con sus miembros. En cada pool se establecerá una política o método de balanceo a elegir entre least connections, round robin o source ip.
Para ilustrar su uso partimos de dos servidores Apache instalados en dos máquinas virtuales diferentes. Crearemos un balanceador con política de round robin.
10.1. Creación de un balanceador
-
Inicia sesión en OpenStack-DI.
-
Selecciona el proyecto en el que crear el balanceador.
-
En el menú de la izquierda selecciona
Project | Network | Neutron Load Balancers
. -
Pulsa el botón
Create Load Balancer
.
10.1.1. Paso 1. Configurar los detalles del balanceador
En este paso estableceremos el nombre del balanceador y la red (p.e. la red del proyecto) donde se encuentran los recursos a balancear.
10.1.2. Paso 2. Configurar los detalles del listener
El listener es el proceso que se encargar de comprobar las peticiones de acuerdo con el puerto y el protocolo que se configure.
Para nuestro ejemplo configuraremos el protocolo HTTP
y el puerto 80
y dejaremos el nombre de listener predeterminado.
10.1.3. Paso 3. Configurar el método de balanceo del pool
El pool contiene la lista de miembros que sirven contenido a través del balanceador. En este paso se define el método que se utilizará para balancear eligiendo entre least connections, round robin o source ip.
Para nuestro ejemplo usaremos el método round robin y dejaremos el nombre de pool predeterminado.
10.1.4. Paso 4. Configurar los miembros del pool
En este paso añadiremos los miembros del pool, que en nuestro caso serán los dos servidores Apache. Para ello, se pulsa el botón Add
del grupo de Available Instances
sobre cada miembro que se quiera incorporar al pool. Los miembros seleccionados quedarán en el grupo Allocated Members
.
También tendremos que definir el puerto de acceso a los miembros del pool. En nuestro caso será el 80.
10.1.5. Paso 5. Configurar el monitor del pool
Puede ocurrir que algunos miembros del pool dejen de estar disponibles en cualquier momento. Para evitar dirigir peticiones a miembros no disponibles, se define un monitor, que comprueba periódicamente el estado de los miembros. Cuando un miembro deja de contestar se retira del pool hasta que no vuelva a estar disponible.
En este paso configuramos el tipo de monitorización (HTTP, ping o TCP), la cadencia de la monitorización, timeout y el número de intentos antes de descartar del pool a un miembro.
En nuestro ejemplo, elegiremos HTTP, lo que nos permitirá configurar otros parámetros específicos. como el método HTTP usado para la monitorización (p.e. GET
), el código HTTP devuelto (p.e. 200) y el path pra la prueba (/
).
Por último, pulsaremos el botón Create Load Balancer
del asistente para proceder a crear el balanceador. En Horizon aparecerán los datos del balanceador creado. Si recargamos la página también veremos el listener creado.
10.2. Configuración de una IP flotante para un balanceador
Definiremos una dirección IP flotante al balanceador, que actuará como la dirección IP de acceso a los recursos balanceados. En nuestro caso, será la IP de acceso a los dos servidores Apache.
En el cuadro de diálogo indicaremos de dónde obtener la IP flotante, que normalmente será de la red externa.
Si hubiese direcciones IP flotantes libres en el proyecto, también apaecerían en desplegable de direcciones IP floatantes para el balanceador. |
La dirección IP flotante asignada la podemos ver al hacer clic sobre el balanceador.
10.3. Prueba del balanceador
Para probar el balanceador, cambiaremos las páginas de inicio de los dos servidores Apache de forma que podamos comprobar que se está haciendo correctamente el balanceo entre los miembros del pool.
En Ubuntu, la página de inicio de Apache2 está en |
A continuación, al ir accediendo a la dirección IP del balanceador comprobaremos que de forma alternativa irá balanceando sobre los dos servidores Apache de acuerdo con la política de balanceo definida.
10.4. Modificar el pool
Se pueden añadir o retirar miembros del pool de un balanceador. Tendremos que seguir estos pasos:
-
Hacer clic sobre el balanceador en la lista de balanceadores disponibles.
-
Hacer clic sobre el listener en la lista de listeners del balanceador.
-
Hacer clic en
Default Pool ID
. -
Pulsar el botón
Add/Remove Pool Members
para añadir o eliminar los miembros del pool.
10.5. Eliminación de un balanceador
Un balanceador tiene una serie de objetos anidados en su interior (listener, pool y health monitor). Para eliminar el balanceador habrá que eliminar dichos objetos desde dentro hacia afuera.
Para ello, seguiremos estos pasos:
-
Hacer clic sobre el balanceador en la lista de balanceadores disponibles.
-
Hacer clic sobre el listener en la lista de listeners del balanceador.
-
Hacer clic en
Default Pool ID
. -
Haz clic en el
Health Monitor ID
. -
Despliega el menú del monitor y selecciona
Delete Health Monitor
y confirma los cambios. -
Despliega el menú del pool, selecciona
Delete Pool
y confirma los cambios. -
Despliega el menú del listener, selecciona
Delete Listener
y confirma los cambios. -
Despliega el menú del balanceador, selecciona
Delete Load Balancer
y confirma los cambios.
11. Networking
Normalmente, en OpenStack-DI los técnicos facilitan los proyectos con la infraestructura básica de red creada. Esta infraestructura básica consiste en una red para el proyecto a la que se conectarán las instancias creadas. Dicha red de proyecto se conectará a la red la UAL mediante un router virtual, que también se proporcionará configurado.
11.1. Configuración de la infraestructura básica de red de un proyecto
En OpenStack, la infraestructura básica de red para un proyecto consta de:
-
Red de proyecto
-
Router de proyecto conectado a red externa y a red de proyecto.
Hay que seguir los pasos siguientes para realizar dicha configuración:
11.2. Crear red de proyecto
-
Inicia sesión en OpenStack-DI.
-
En el menú de la izquierda selecciona
Project | Network | Networks
. -
Pulsa el botón
Create Network
-
En la ficha
Network
del asistente completa el nombre de la red siguiendo la plantilla nombre del proyecto seguido de-net
. Mantener seleccionadas las opcionesEnable Admin State
yCreate Subnet
y dejarnova
enAvailability Zone Hints
. -
En la ficha
Subnet
del asistente completa el nombre de la subred siguiendo la plantilla nombre del proyecto seguido de-subnet
. EnNetwork Address
introducir las direcciones de la red del proyecto en formato CIDR (p.e. `10.0.0.0/24). Dejar el resto con los valores predeterminados como se muestra en la figura.OpenStack-DI está configurado para que las redes de proyecto que se definan tienen que ser subredes de la red
10.0.0.0/8
, definiendo un rango de direcciones comprendidas desde la10.0.0.0
hasta la10.255.255.255
. Para la mayoría de los casos, una red10.0.0.0/24
es el valor más adecuado paraNetwork Address
. -
En la ficha
Subnet Details
del asistente deja activadoEnable DHCP
y configura los DNS que se proporcionarán a las instancias en esta red. Los DNS se introducen enDNS Name Servers
introduciendo uno por línea en el caso de tener que introducir varios. Introduciremos al menos un DNS de la UAL (150.214.156.2
). -
Pulsar
Create
en el asistente para crear la red.
Una vez creada la red del proyecto, hay que crear un router para conectarla a la red de la UAL de forma que las instancias de la red del proyecto tengan puedan estar conectadas a Internet. En la sección siguiente se explica cómo configurar el router del proyecto.
11.3. Crear router de proyecto
La red de proyecto tiene que conectarse a la red de la UAL a través de un router que crearemos a continuación.
-
Inicia sesión en OpenStack-DI.
-
En el menú de la izquierda selecciona
Project | Network | Routers
. -
Pulsa el botón
Create Router
-
En
Router Name
introduciremos el nombre del router siguiendo la plantilla nombre del proyecto seguido de-net
(p,e.johndoe-net
). Mantener seleccionada la opciónEnable Admin State
y dejarnova
enAvailability Zone Hints
. -
En
External Network
seleccionarext-net
de la lista.
Una vez creado el router del proyecto, falta conectarlo a la red del proyecto. Por ahora, sólo se encuentra conectado a la red de externa. Podemos comprobarlo si seleccionamos Project | Network | Network Topology
.
En la sección siguiente se explica cómo terminar de configurar el router del proyecto conectándolo a la red del proyecto.
11.4. Añadir interfaz al router
Para terminar de configurar el router y la configuración de red del proyecto hay que añadir una segunda interfaz de red al router para conectarlo a la red del proyecto.
-
Inicia sesión en OpenStack-DI.
-
Puedes crear la segunda interfaz de red del router de cualquiera de estas dos formas:
-
En el menú de la izquierda selecciona
Project | Network | Network Topology
. Sitúa el ratón sobre el router y selecciona el botónAdd Inteface
-
En el menú de la izquierda selecciona
Project | Network | Routers
. Haz clic sobre el enlace del router. En la fichaInterfaces
pulsa el botónAdd Interface
.
-
-
En el formulario
Add Interface
selecciona la red del proyecto para que el router quede conectado a la red del proyecto a través de esta interfaz. -
Pulsa el botón
Submit
para guardar los cambios.
Finalmente, podemos ver la red configurada en Project | Network | Network Topology
.
12. Operaciones extendidas sobre instancias
12.1. Redimensionar una instancia
Si una instancia necesita ampliar los recursos iniciales con los que fue creada, podemos ampliarlos cambiándole el sabor (flavour).
Es importante que la instancia esté apagada antes de proceder a redimensionarla. |
-
Seleccionar
Project | Compute | Instances
-
Desplegar el menú de acciones de la instancia a mover y seleccionar
Resize Instance
. -
Seleccionar el nuevo sabor en el cuadro de diálogo.
-
Pulsar el botón
Resize
en el asistente. -
Tras la ampliación, pulsar el botón
Confirm Resize/Migrate
. -
Iniciar la instancia con su nuevo sabor pulsando el bótón
Start Instance
.
12.2. Añadir claves SSH
Hay ocasiones en las que queremos que en una instancia puedan iniciar sesión varios usuarios en una misma cuenta. Esto es especialmente útil para técnicos. En estas situaciones la instancia debe tener la clave pública de cada uno de los usuarios que vayan a acceder a ella. Esto lo podemos realizar propocionando las distintas claves públicas en el momento de la creación o a posteriori, una vez que la instancia está creada.
Acceder a la clave pública a incorporar (p.e. id_rsa.pub
) con el comando siguiente
cat ~/.ssh/id_rsa.pub
12.2.1. Añadir varias claves SSH durante la creación de una instancia
Durante lo creación de una instancia, no añadas ninguna clave durante la creación de la instancia e introduce el código siguiente en el cuadro de texto Customization Script
del paso Configuration
del asistente de creación de instancias.
Crea un item en ssh_authorized_keys
con la clave pública de cada uno de los usuarios que vayan a iniciar sesión en la instancia.
No introduzcas ninguna clave en el paso |
13. Operaciones reservadas a técnicos de OpenStack-DI
13.1. Administración de usuarios
13.1.1. Restablecer contraseña
Para cambiar la contraseña de un usuario, seleccionar el proyecto admin
y mostrar la lista de usuarios seleccionando Identity | Users
.
En el menú de acciones del usuario, seleccionar Change Password
y completar los nuevos valores en el formulario.
13.1.2. Desactivar/Activar usuario
Para desactivar temporalmente la cuenta de un usuario o volver a activarla, seleccionar el proyecto admin
y mostrar la lista de usuarios seleccionando Identity | Users
.
En el menú de acciones del usuario, seleccionar Disable User
o Enable User
.
13.1.3. Crear usuario
-
Seleccionar el menú
Identity | Users
. -
Pulsar el botón
Create user
-
Completar los valores siguientes en el formulario
-
User Name
: Login de Campus Virtual -
Description
: Nombre completo -
Correo electrónico
: Dirección de correo electrónico -
Contraseña
-
Mantener el rol
user
. Esto determinará los privilegios del usuario -
Si ya existe un proyecto al que vincular el usuario, seleccionarlo de la lista
Primary Project
. Si no, crearemos un proyecto nuevo sobre la marcha pulsando el botón+
de la lista desplegablePrimary Project
.
Crear un proyecto sobre la marcha abre el Asistente para la creación de proyectos. Consulta la sección Crear proyecto para más información.
-
-
Pulsar el botón
Create User
para proceder a la creación del usuario.
13.2. Mover instancia
Para mover una instancia del servidor en el que se encuentra a otro diferente, seguir los pasos siguientes desde el proyecto admin
:
Es importante que la instancia esté apagada antes de proceder a cambiarla de servidor. |
-
Seleccionar
Admin | Compute | Instances
-
Desplegar el menú de acciones de la instancia a mover y seleccionar
Migrate Instance
.No confundir la acción
Migrate Instance
conLive Migrate Instance
. Esta última está disponible en OpenStack-DI pero no tiene funcionalidad asociada por lo que no debe usarse. -
Tras unos instantes se pedirá que se confirme la migración a otro servidor
-
Pulsar el botón
Confirm Resize/Migrate
. -
Una vez migrada la instancia a otro servidor, iniciar la instancia pulsando el bótón
Hard Reboot Instance
. La opciónStart Instance
de instancias de otros proyectos no está disponible para el usuarioadmin
.
13.3. Convertir una imagen en pública
Las imágenes subidas por los usuarios son privadas y sólo son visibles en el proyecto en el que se han creado. Para convetirlas en públicas y que puedan ser usadas por otros usuarios, seguir estos pasos.
-
Inicia sesión en OpenStack-DI.
-
Comprobar que se está en el proyecto
admin
. -
En el menú de la izquierda selecciona
Admin | Compute | Images
. -
Selecciona la imagen a modificar, despliega el listbox de
Actions
y seleccionaEdit Image
. -
Pulsa los botones
Public | Private
deVisibility
enImage Sharing
. -
Aplica los cambios pulsando el botón
Update Image
.
13.4. Administración de proyectos
13.4.1. Crear proyecto
-
Inicia sesión en OpenStack-DI.
-
En el menú de la izquierda selecciona
Identity | Projects
. -
Pulsa el botón
Create Project
-
En la ficha
Project Information
del asistente completa el nombre del proyecto (p.e. el login del usuario en Campus Virtual si es un proyecto individual o cualquier otro si es un proyecto compartido). -
Completa la descripción. Para proyectos individuales se recomienda seguir la plantilla
Proyecto de
seguido del nombre completo -
En la ficha
Project Members
agrega desde la izquierda (All Users
) los miembros del proyecto hasta que la parte derecha (Project Members
) tenga los miembros deseados. -
Pulsa
Create Project
.
13.4.2. Administrar miembros
-
Inicia sesión en OpenStack-DI.
-
En el menú de la izquierda selecciona
Identity | Projects
. -
En la lista
Projects
selecciona el proyecto al que quieras modificar sus miembros, y selecciona la opciónManage Members
en el listbox deActions
. -
En la ficha
Project Members
agrega desde la izquierda (All Users
) los miembros del proyecto hasta que la parte derecha (Project Members
) tenga los miembros deseados. -
Pulsa
Save
para guardar los cambios.
13.4.3. Modificar la cuota de un proyecto
Los proyectos de OpenStack-DI ofrecen una cuota predetermianda de recursos de cómputo, almacenamiento y red. Es posible cambiar la cuota asignada siguiendo estos pasos:
-
Inicia sesión en OpenStack-DI.
-
En el menú de la izquierda selecciona
Identity | Projects
. -
En la lista
Projects
selecciona el proyecto al que quieras modificar sus miembros, y selecciona la opciónModify Quotas
en el listbox deActions
. -
Configura los valores adecuados el cuadro de diálogo
Edit Quotas
. -
Pulsa
Save
para guardar los cambios.
13.5. Asignar IP flotante a un proyecto
La red externa de OpenStack-DI tiene reservado un rango de direcciones IP para servidores a los que poder asignar nombres DNS, servidores particulares, entre otros. Así, el rango de direcciones al que se accede cuando se solicita una IP flotante es un subconjunto del conjunto total de direcciones de la red ext-net
.
Para asignar a un proyecto concreto una IP flotante del grupo de direcciones reservadas, un técnico seguirá estos pasos:
-
Inicia sesión en OpenStack-DI.
-
En el menú de la izquierda selecciona
Admin | System | Floating IPs
. -
Pulsa el botón
Allocate IP to Project
-
En el cuadro de diálogo seleccionar el proyecto al que asignar la IP flotante, indicar la IP a asignar y proporcionar una descripción.
Tras estos pasos, el proyecto de destino tendrá adjudicada esa IP flotante para usarla convenientemente == Recursos complementarios