Produciendo una configuración Ignition

Visión general de Ignition

Ignition es una utilidad de aprovisionamiento que lee un archivo de configuración (en formato JSON) y aprovisiona a un sistema basado en Fedora CoreOS sobre esta configuración. Los componentes configurables incluyen almacenamiento y sistemas de archivos, unidades systemd y usuarios.

Ignition corre sólo una vez durante el primera arranque del sistema (durante el initramfs). Como Ignition corre tan pronto en el proceso de arranque, puede reparticionar los discos, formatear sistemas de archivos, crear usuarios y escribir archivos antes de que el espacio de usuario empieza a arrancar. Como resultado, los servicios systemd están ya escritos en el disco cuando systemd se inicia, acelerando el tiempo de arranque.

Proceso de configuración

Las configuraciones Ignition están formateadas como JSON, los que es más rápido y fácil para que la máquina lo lea. Sin embargo, esto archivos no son fáciles para que los humanos los lean o escriban. La solución es un proceso de configuración en dos pasos que es amigable tanto para los humanos como para las máquinas:

  1. Produce una configuración Butane formateada YAML.

  2. Ejecutar Butane para convertir el archivo YAML en un archivo de configuración JSON Ignition.

Durante el proceso de transpilación, Butane verifica la sintaxis del archivo YAML, que puede detectar errores antes de usarlo para iniciar el sistema FCOS.

Una vez que tiene un archivo Ignition (.ign), puede usarlo para arrancar un sistema FCOS en una MV o instalarlo en bare metal.

Try to plan your configuration with the full set of customization details before provisioning a Fedora CoreOS instance. But don’t worry if you forgot something as you can fix the configuration and re-deploy the instance from a fresh image.

Obtener Butane

Puede ejecutar Butane como contenedor con docker o podman o descargarlo como un binario independiente.

A menos que se indique lo contrario, las nuevas versiones de Butane son compatibles hacia atrás con las versiones antiguas.

Por medio de un contenedor con podman o docker

Puede obtener Butane desde un contenedor alojado en quay.io:

podman pull quay.io/coreos/butane:release
El indicador release rastrea la versión más reciente y el indicador latest rastrea la rama en desarrollo en Git.

Ejecute Butane usando bien la entrada y la salida estándar o usando archivos:

Ejemplo de ejecución de Butane usando la entrada y la salida estándar
podman run --interactive --rm quay.io/coreos/butane:release \
       --pretty --strict < your_config.bu > transpiled_config.ign
Ejemplo de ejecución de Butane usando un archivo como entrada y salida estándar
podman run --interactive --rm --security-opt label=disable \
       --volume ${PWD}:/pwd --workdir /pwd quay.io/coreos/butane:release \
       --pretty --strict your_config.bu > transpiled_config.ign

Para hacerlo más sencillo de teclear, puede también añadir el siguiente alias en su configuración de shell:

alias butane='podman run --rm --interactive       \
              --security-opt label=disable        \
              --volume ${PWD}:/pwd --workdir /pwd \
              quay.io/coreos/butane:release'
Estos ejemplos usan podman, pero puede usar docker de una manera similar.

Instalar por medio de la distribución de paquetes

Instalar sobre Fedora

Butane está disponible como paquete Fedora:

sudo dnf install -y butane

Instalar por medio de Homebrew

Butane está disponible como paquete Homebrew:

brew install butane

Instalar por medio de MacPorts

Butane está disponible como paquete MacPorts:

sudo port install butane

Instalar por medio de Scoop

Butane está disponible como paquete Scoop por medio de los extras:

scoop bucket add extras
scoop install butane

Instalar por medio de Windows Package Manager Client (winget)

Butane está disponible como un paquete winget:

winget install --id Fedora.CoreOS.butane

Binario aislado

Linux

Para usar Butane en Linux, siga estos pasos:

  1. Si no lo ha hecho ya, descargue las claves de firma de Fedora e impórtelas:

    curl https://fedoraproject.org/fedora.gpg | gpg --import
  2. Descargue la última versión de Butane y la firma separada de la página de la versión.

  3. Verifique con gpg:

    gpg --verify butane-x86_64-unknown-linux-gnu.asc

macOS

Para usar el binario de Butane en macOS, siga los siguientes pasos:

  1. Si no lo ha hecho ya, descargue las claves de firma de Fedora e impórtelas:

    curl https://fedoraproject.org/fedora.gpg | gpg --import
  2. Descargue la última versión de Butane y la firma separada de la página de la versión.

  3. Verifique con gpg:

    gpg --verify butane-x86_64-apple-darwin.asc

Windows

Para usar el binario Butane en Windows, siga estos pasos:

  1. Si no lo ha hecho ya, descargue las claves de firma de Fedora e impórtelas:

    Invoke-RestMethod -Uri https://fedoraproject.org/fedora.gpg | gpg --import
  2. Descargue la última versión de Butane y la firma separada de la página de la versión.

  3. Verifique con gpg:

    gpg --verify butane-x86_64-pc-windows-gnu.exe.asc

Example

Crear una configuración básica Ignition que modifica el usuario predeterminado de Fedora CoreOS core para permitir a este usuario acceder con una clave SSH.

Los pasos generales son los siguientes:

  1. Escriba la configuración Butane en el formato YAML.

  2. Use Butane para convertir la configuración Butane en una configuración Ignition (JSON).

  3. Arranque una imagen fresca de Fedora CoreOS con la configuración Ignition resultante.

Requisito Previo

Este ejemplo usa un par de claves pública y privada SSH. Si no las tiene todavía puede generar unhttps://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/system_administrators_guide/index#sec-SSH[par de claves] SSH.

La clave pública SSH se puede aprovisionar a la máquina Fedora CoreOS (por medio de Ignition). La clave privada SSH necesita estar disponible para su usuario en la estación de trabajo local con el objetivo de autenticarse remotamente sobre SSH.

Escribir la configuración Butane

  1. Copie el siguiente ejemplo en un editor de texto:

    variant: fcos
    version: 1.5.0
    passwd:
      users:
        - name: core
          ssh_authorized_keys:
            - ssh-rsa AAAA...
  2. Reemplace la línea de arriba que empieza con ssh-rsa con los contenidos de su archivo de clave pública SSH.

  3. Guarde el archivo con el nombre example.bu.

Los archivos YAML deben tener una sangría consistente. Aunque Butane comprueba los errores sintácticos, compruebe que la sangría coincide con el ejemplo de arriba. En general, las configuraciones de Butane deben ser conformes al formato de especificación de configuración de Butane.

Usar Butane

  1. Ejecute Butane sobre la configuración Butane:

    butane --pretty --strict example.bu > example.ign
  2. Use el archivo example.ign para arrancar Fedora CoreOS..

Si usa Butane en Windows, > example.ign`creará un archivo Ignition codificado UTF-16. Esto puede evitar que Fedora CoreOS arranque apropiadamente. Use en su lugar `--output example.ign.