Diferencia entre revisiones de «Grado de Ingeniería de Software»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(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 12: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.


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