Linux en español
Tutoriales

Realizar instalaciones de servidor automatizadas con Ubuntu 20.04 LTS

Ubuntu
5 minutos de lectura

Introducción

El instalador del servidor para 20.04 admite un nuevo modo de operación: instalación automatizada, instalación automática para abreviar. También es posible que conozca esta función como instalación desatendida o sin intervención o preestablecida.

La instalación automática le permite responder a todas esas preguntas de configuración con anticipación con una configuración de instalación automática y permite que el proceso de instalación se ejecute sin ninguna interacción.

Diferencias con la preselección del instalador de Debian

los preseeds son la forma de automatizar un instalador basado en debian-installer (también conocido como di).

las instalaciones automáticas para el nuevo instalador del servidor difieren de las preselecciones en las siguientes formas principales:

  • el formato es completamente diferente (configuración de inicio de nube, generalmente yaml, frente a formato de selecciones de configuración de debconf)
  • cuando la respuesta a una pregunta no está presente en una preselección, di se detiene y le pide al usuario que ingrese. las instalaciones automáticas no son así: de manera predeterminada, si hay alguna configuración de instalación automática, el instalador toma la configuración predeterminada para cualquier pregunta sin respuesta (y falla si no hay una configuración predeterminada).
    • Puede designar secciones particulares en la configuración como “interactivas”, lo que significa que el instalador aún se detendrá y preguntará sobre ellas.

Proporcionar la configuración de instalación automática

La configuración de instalación automática se proporciona a través de la configuración de inicio en la nube, que es casi infinitamente flexible. En la mayoría de los escenarios, la forma más fácil será proporcionar datos de usuario a través de nocloud 2 fuente de datos.

La configuración de instalación automática debe proporcionarse bajo la autoinstallclave en la configuración. Por ejemplo:

#cloud-config
autoinstall:
  version: 1
  ...

Ejecutar una instalación automática verdaderamente automática

Incluso si se encuentra una configuración de instalación automática completamente no interactiva, el instalador del servidor solicitará confirmación antes de escribir en los discos a menos que autoinstallesté presente en la línea de comando del núcleo. Esto es para dificultar la creación accidental de una memoria USB que formateará una máquina en la que está conectada durante el arranque. Muchas instalaciones automáticas se realizarán a través de netboot, donde la línea de comando del núcleo está controlada por la configuración de netboot, ¡solo recuerde ponerla autoinstallallí!

Inicio rápido

¿Entonces solo quieres probarlo? Bueno, tenemos la página para ti.

Crear una configuración de instalación automática

Cuando se instala cualquier sistema utilizando el instalador del servidor, se crea un archivo de instalación automática para repetir la instalación en /var/log/installer/autoinstall-user-data.

El complemento descrito aquí todavía no existe

Alternativamente, hay un complemento, autoinstall-editorque puede usarse para editar o crear desde cero una configuración de instalación automática (en realidad, es en su mayoría el mismo código que el que ejecuta la instalación en modo interactivo).

# start editing new config file
$ autoinstall-editor
# dump out to stdout a complete autoinstall config  with default answers everywhere
$ autoinstall-editor --create > my-autoinstall.yaml
# edit existing autoinstall config
$ autoinstall-editor my-autoinstall.yaml

La estructura de una configuración de autoinstalación

La configuración de instalación automática tiene documentación completa .

Técnicamente hablando, la configuración no se define como un formato de texto, pero la configuración de inicio de nube generalmente se proporciona como YAML, por lo que esa es la sintaxis que utiliza la documentación.

Una configuración mínima es:

version: 1
identity:
    hostname: hostname
    username: username
    password: $crypted_pass

Aquí hay un archivo de ejemplo que muestra la mayoría de las características:

version: 1
reporting:
    hook:
        type: webhook
        endpoint: http://example.com/endpoint/path
early-commands:
    - ping -c1 198.162.1.1
locale: en_US
keyboard:
    layout: en
    variant: uk
network:
    network:
        version: 2
        ethernets:
            enp0s25:
               dhcp4: yes
            enp3s0: {}
            enp4s0: {}
        bonds:
            bond0:
                dhcp4: yes
                interfaces:
                    - enp3s0
                    - enp4s0
                parameters:
                    mode: active-backup
                    primary: enp3s0
proxy: http://squid.internal:3128/
apt:
    primary:
        - arches: [default]
        - uri: http://repo.internal/
    sources:
        my-ppa.list:
            source: "deb http://ppa.launchpad.net/curtin-dev/test-archive/ubuntu $RELEASE main"
            keyid: B59D 5F15 97A5 04B7 E230  6DCA 0620 BBCF 0368 3F77
storage:
    layout:
        name: lvm
identity:
    hostname: hostname
    username: username
    password: $crypted_pass
ssh:
    install-server: yes
    authorized-keys:
      - $key
    allow-pw: no
snaps:
    - name: go
      channel: 1.14/stable
      classic: true
debconf-selections: |
    bind9      bind9/run-resolvconf    boolean false
packages:
    - libreoffice
    - dns-server^
user-data:
    disable_root: false
late-commands:
    - sed -ie 's/GRUB_TIMEOUT=.*/GRUB_TIMEOUT=30/' /target/etc/default/grub
error-commands:
    - tar c /var/log/installer | nc 192.168.0.1 1000

Muchas teclas y valores corresponden directamente a las preguntas que hace el instalador (por ejemplo, la selección del teclado). Consulte la referencia para obtener detalles de aquellos que no.

Manejo de errores

El progreso a través del instalador se informa a través del reportingsistema, incluidos los errores. Además, cuando ocurre un error fatal, error-commandsse ejecutan y el rastreo se imprime en la consola. El servidor solo espera.

Posibles direcciones futuras

Es posible que deseemos ampliar las “especificaciones de coincidencia” de los discos para cubrir otras formas de seleccionar discos.

Entradas relaccionadas

Cómo actualizar el kernel en un servidor dedicado de OVH

Diego García Cuesta

Desactivar actualizaciones automáticas en Ubuntu 20.04

Diego García Cuesta

Redirigir HTTP a HTTPS en Apache/Nginx

Diego García Cuesta

Cómo guardar el historial de Bash por si acaso

Linux en Español

Cómo dar Formato a Unidades USB y Tarjetas SD en Linux

Diego García Cuesta

Cómo mostrar una lista de todas las bases de datos en MySQL

Diego García Cuesta