Diferencia entre revisiones de «Grado de Ingeniería de Software»
(→Historial) |
|||
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 | ||
+ | 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). | ||
+ | |||
+ | <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]] |
Revisión del 11:10 6 ago 2019
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.
Contenido
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/