Admin Libre - Administración de sistemas y redes

OpenBSD en Exoscale
Por admin el 31 de Marzo de 2022

Exoscale es un proveedor de alojamiento suizo con centros de datos en distintos puntos de Europa. Aunque ofrecen la posibilidad de instalar OpenBSD desde plantillas proporcionadas por ellos, éstas no están disponibles para los servidores VPS de 10GB de disco. Afortunadamente es posible instalarlo con netboot.xyz.

Qué necesitas

  • Una cuenta Exoscale con una llave IAM API configurada
  • exoscale-cli configurado (disponible como paquete OpenBSD)

Instalación

El proceso se explica en la documentación del modo rescate. Básicamente hay que hacer esto, teniendo en cuenta que para moverte por el menú de netboot necesitarás usar los cursores del teclado numérico con el ratón posicionado sobre el recuadro de la consola:

  1. Crea una nueva instancia Micro y párala tan pronto como puedas
  2. Arranca la instancia en modo rescate para ejecutar netboot.xyz
  3. Usando el teclado numérico, elige OpenBSD desde el menú y durante la instalación elige disco GPT
  4. Una vez que la instalación de OpenBSD se ha completado elige (H)alt y para la instancia
  5. Arranca la instancia normalmente y arrancará desde el disco donde se ha instalado OpenBSD

Este es el comando para añadir netboot al proceso de arranque, siendo tuvps la etiqueta de tu instancia:

$ exo compute instance start --rescue-profile=netboot tuvps 

Actualización a día 27/04/2022: el comando ha cambiado, ahora se hace de esta forma, especificando el ID de la instancia y la zona:

$ exo compute instance start xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --rescue-profile=netboot -z ch-dk-2

Disklabel personalizada

Como el disco de 10 GB es relativamente pequeño usaré un disklabel(8) personalizado para tener las opciones adecuadas de montaje para las distintas particiones. Como la memoria RAM es 2GB he usado un poco más (2055MB) para swap. La partición i no hay que añadirla manualmente ya que aparece por defecto al seleccionar GPT.

Nota: Desactivando KARL y ASLR de librerías he conseguido ahorrar un 300% de gasto usando un servidor de 512MB de RAM.

  a:           501.5M          /
  b:          2055.2M          swap
  c:         10240.0M          unused                    
  d:           305.9M          /tmp
  e:           902.1M          /var
  f:          4102.5M          /usr
  h:          1027.6M	       /usr/local
  i:             0.5M          MSDOS                    
  k:          1344.6M	       /home

Cabe mencionar que lo adecuado sería una partición /var lo suficientemente grande como para que haya libre el mismo tamaño que la memoria, aunque en 10GB no me ha resultado posible teniendo en cuenta que la partición /home debe tener espacio para las actualizaciones con sysupgrade(8).

Una vez instalado se elige la opción (H)alt y se reinicia la máquina desde Exoscale para que arranque sin la imagen de rescate.

Configuración de IPv6

Lo primero que necesitas es permitir ICMP6 en el cortafuegos de Exoscale y también permitir los siguientes tipos de paquetes en tu pf.conf, de acuerdo al RFC 4890:

# RFC 4890
pass inet6 proto icmp6 all icmp6-type { 1 2 3 4 128 129 133 134 135 136 }

Una vez echo esto configura IPv6 para la interfaz vio0:

# echo "inet6 autoconf -soii -temporary" >> /etc/hostname.vio0
# sh /etc/netstart vio0

Destacado