|
|
Línea 1: |
Línea 1: |
| Material de la asignatura para el Grado de Ingeniería de Software | | 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
| + | = Prácticas = |
− | 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
| + | * [[Boletín 1: Virtualización]] |
− | 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).
| |
− | | |
− | <syntaxhighlight lang="bash">
| |
− | wget https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img
| |
− | </syntaxhighlight>
| |
− | | |
− | == 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:
| |
− | | |
− | <syntaxhighlight lang="bash">
| |
− | sudo apt install cloud-init cloud-image-utils virt-manager
| |
− | </syntaxhighlight>
| |
− | | |
− | == 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:
| |
− | | |
− | <syntaxhighlight lang="bash">
| |
− | cloud-localds volume.img conf-file
| |
− | </syntaxhighlight>
| |
− | | |
− | === Configurar usuario: password y clave ssh ===
| |
− | | |
− | <b>Opción 1</b>
| |
− | | |
− | Añadir una contraseña y permitir el acceso por ssh. Por defecto, el usuario es
| |
− | ubuntu.
| |
− | | |
− | <nowiki>
| |
− | #cloud-config
| |
− | password: qwerty123
| |
− | chpasswd: { expire: False }
| |
− | ssh_pwauth: True
| |
− | </nowiki>
| |
− | | |
− | De esta forma, al entrar por ssh, necesitaremos poner la contraseña del usuario:
| |
− | | |
− | <syntaxhighlight lang="bash">
| |
− | ssh ubuntu@IP # Esto nos pedirá nuestra contraseña de usuario
| |
− | </syntaxhighlight>
| |
− | | |
− | <b>Opción 2</b>
| |
− | | |
− | Añadir un nuevo usuario, y pasarle clave pública ssh, si no tenemos, generamos
| |
− | una:
| |
− | | |
− | <syntaxhighlight lang="bash">
| |
− | ssh-keygen # Generará clave pública/privada para la autenticación
| |
− | cat ~/.ssh/id_rsa.pub # Mostrará nuestra clave pública generada
| |
− | </syntaxhighlight>
| |
− | | |
− | 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.
| |
− | | |
− | <nowiki>
| |
− | #cloud-config
| |
− | users:
| |
− | - name: practica
| |
− | ssh-authorized-keys:
| |
− | - ssh-rsa AA... user@machine
| |
− | sudo: ALL=(ALL) NOPASSWD:ALL
| |
− | groups: sudo
| |
− | shell: /bin/bash
| |
− | </nowiki>
| |
− | | |
− | <syntaxhighlight lang="bash">
| |
− | ssh practica@IP # No nos pedirá clave de usuario
| |
− | </syntaxhighlight>
| |
− | | |
− | === Configurar hostname y un id de instancia ===
| |
− | | |
− | <nowiki>
| |
− | #cloud-config
| |
− | instance-id: my-instance-id
| |
− | local-hostname: my-hostname
| |
− | </nowiki>
| |
− | | |
− | | |
− | === 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 = | | = Historial = |
| | | |
| * [[Material del curso 2018/2019]] | | * [[Material del curso 2018/2019]] |