|
|
| 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]] |