Grado de Ingeniería de Software

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Material de la asignatura para el Grado de Ingeniería de Software

Requisitos. Para la realización de esta práctica necesitará una imagen de Ubuntu Cloud que descargaremos de https://cloud-images.ubuntu.com/ y necesitaremos un sistema anfitrión con una distribución Linux, basada en debian preferiblemente, como Ubuntu.

En esta práctica, usando una imagen de ubuntu cloud y cloud-init, vamos a configurar una imagen ubuntu a nuestro gusto. Veremos como añadir usuarios, configurar un repositorio, instalar paquetes o ejecutar comandos al iniciar. También veremos como añadir una clave ssh para un usuario y como acceder a la máquina mediante ssh.


Descargar image ubuntu cloud

Entramos en https://cloud-images.ubuntu.com/ y descargamos una imagen de ubuntu, nosotros elegiremos la Ubuntu 18.04 por ser LTS (Long Time Support).

wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img

Instalar herramientas necesarias

virt-manager: interfaz gráfica para la gestión de hipervisores. cloud-init: herramienta para personalizar una instancia de cloud antes de inicializar. cloud-image-utils: herramienta complementaria a cloud-init para modificar imágenes cloud.

Para instalar todas ellas, si estamos usando una distribución basada en debian, instalamos con:

sudo apt install cloud-init cloud-image-utils virt-manager

Crear configuración de cloud-init

Para añadir una configuración, crearemos un fichero de configuración, que comenzará siempre #cloud-config y tendrá una sintaxis yaml.

Una vez añadida la configuración, creamos una imagen con el siguiente comando:

cloud-localds volume.img conf-file

Configurar usuario: password y clave ssh

Opción 1

Añadir una contraseña y permitir el acceso por ssh. Por defecto, el usuario es ubuntu.

#cloud-config password: qwerty123 chpasswd: { expire: False } ssh_pwauth: True

De esta forma, al entrar por ssh, necesitaremos poner la contraseña del usuario:

ssh ubuntu@IP  # Esto nos pedirá nuestra contraseña de usuario

Opción 2

Añadir un nuevo usuario, y pasarle clave pública ssh, si no tenemos, generamos una:

ssh-keygen  # Generará clave pública/privada para la autenticación
cat ~/.ssh/id_rsa.pub  # Mostrará nuestra clave pública generada

La configuración del fichero sería esta vez de la siguiente forma. Aquí ya nos estamos creando nuestro propio usuario, con acceso root, y le estamos pasando nuestra clave ssh.

#cloud-config users: - name: practica ssh-authorized-keys: - ssh-rsa AA... user@machine sudo: ALL=(ALL) NOPASSWD:ALL groups: sudo shell: /bin/bash

ssh practica@IP  # No nos pedirá clave de usuario

Configurar hostname y un id de instancia

#cloud-config instance-id: my-instance-id local-hostname: my-hostname


Configurar repositorio: añadir e instalar paquetes

Ejecutar comandos al iniciar

Crear VM utilizando virt-manager

copiar volumen de cloud-init e imagen de ubuntu a /var/lib/libvirt/images/ https://gist.github.com/shettyg/455ff78605ea4c45febe7b5aa345c87d

Configuración de virt-manager

abrir virt-manager y crear VM

Buscar ip local de la VM para conectarnos por ssh

buscar ip máquina https://www.cyberciti.biz/faq/find-ip-address-of-linux-kvm-guest-virtual-machine/

Historial