Creazione di una configurazione Ignition
Panoramica di Ignition
Ignition è un’utilità di provisioning che legge un file di configurazione (in formato JSON) e configura un sistema Fedora CoreOS in base a tale configurazione. I componenti configurabili includono storage e filesystem, unità systemd e utenti.
Ignition viene eseguito solo una volta durante il primo avvio del sistema (mentre si trova nell’initramfs). Poiché viene eseguito così presto nel processo di avvio, può ripartizionare i dischi, formattare i filesystem, creare utenti e scrivere file prima che lo userspace inizi ad avviarsi. Di conseguenza, i servizi systemd sono già scritti su disco quando systemd si avvia, accelerando il tempo di avvio.
Processo di configurazione
Le configurazioni di avvio sono formattate come JSON, che è rapido e facile da leggere per una macchina. Tuttavia, questi file non sono facili da leggere o scrivere per gli esseri umani. La soluzione è un processo di configurazione in due fasi che è adatto sia per gli esseri umani che per le macchine:
-
Produce una configurazione Butane in formato YAML.
-
Esegui Butane per convertire il file YAML in una configurazione Ignition JSON.
Durante il processo di transpilazione, Butane verifica la sintassi del file YAML, che può individuare errori prima che tu lo utilizzi per avviare il sistema FCOS.
Una volta che hai un file Ignition (.ign), puoi usarlo per avviare un sistema FCOS in una VM o installarlo su hardware fisico.
| Cerca di pianificare la tua configurazione con il set completo di dettagli di personalizzazione prima di effettuare il provisioning di un’istanza di Fedora CoreOS. Ma non preoccuparti se dimentichi qualcosa, perché puoi correggere la configurazione e ridistribuire l’istanza da un’immagine nuova. |
Ottenere Butane
Puoi eseguire Butane come container con docker o podman o scaricarlo come binario autonomo.
| A meno che non diversamente indicato, le nuove versioni di Butane sono retrocompatibili con le versioni precedenti. |
Attraverso un container con podman o docker
Puoi ottenere Butane da un container ospitato su quay.io:
podman pull quay.io/coreos/butane:release
Il tag release traccia l’ultima versione rilasciata e il tag latest traccia il ramo di sviluppo Git.
|
Esegui Butane utilizzando input standard e output standard o utilizzando file:
podman run --interactive --rm quay.io/coreos/butane:release \
--pretty --strict < your_config.bu > transpiled_config.ign
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
Per rendere più semplice la digitazione, puoi anche aggiungere il seguente alias alla configurazione della tua shell:
alias butane='podman run --rm --interactive \
--security-opt label=disable \
--volume "${PWD}:/pwd" --workdir /pwd \
quay.io/coreos/butane:release'
| Questi esempi utilizzano podman, ma puoi usare docker in modo simile. |
Installazione tramite pacchetti di distribuzione
Installazione tramite MacPorts
Butane è disponibile come pacchetto MacPorts:
sudo port install butane
Installazione tramite Windows Package Manager Client (winget)
Butane è disponibile come pacchetto winget:
winget install --id Fedora.CoreOS.butane
Binario autonomo (standalone)
Linux
Per utilizzare il binario Butane su Linux, segui questi passaggi:
-
Se non l’hai già fatto, scarica le chiavi di firma Fedora e importale:
curl https://fedoraproject.org/fedora.gpg | gpg --import -
Scarica l’ultima versione di Butane e la firma distaccata dalla pagina delle versioni.
-
Verificalo con gpg:
gpg --verify butane-x86_64-unknown-linux-gnu.asc
MacOS
Per utilizzare il binario Butane su macOS, segui questi passaggi:
-
Se non l’hai già fatto, scarica le chiavi di firma Fedora e importale:
curl https://fedoraproject.org/fedora.gpg | gpg --import -
Scarica l’ultima versione di Butane e la firma distaccata dalla pagina delle versioni.
-
Verificalo con gpg:
gpg --verify butane-x86_64-apple-darwin.asc
Windows
Per utilizzare il binario Butane su Windows, segui questi passaggi:
-
Se non l’hai già fatto, scarica le chiavi di firma Fedora e importale:
Invoke-RestMethod -Uri https://fedoraproject.org/fedora.gpg | gpg --import -
Scarica l’ultima versione di Butane e la firma distaccata dalla pagina delle versioni.
-
Verificalo con gpg:
gpg --verify butane-x86_64-pc-windows-gnu.exe.asc
Esempio
Crea una configurazione Ignition di base che modifica l’utente predefinito core di Fedora CoreOS per consentire a questo utente di accedere con una chiave SSH.
I passaggi complessivi sono i seguenti:
-
Scrivi la configurazione Butane nel formato YAML.
-
Usa Butane per convertire la configurazione Butane in una configurazione Ignition (JSON).
-
Avvia una nuova immagine Fedora CoreOS con la configurazione Ignition risultante.
Prerequisiti
Questo esempio utilizza una coppia di chiavi SSH pubblica e privata. Se non le hai già, puoi generare una coppia di chiavi SSH.
La chiave pubblica SSH verrà configurata sulla macchina Fedora CoreOS (tramite Ignition). La chiave privata SSH deve essere disponibile per il tuo utente sulla workstation locale, per autenticarsi in remoto via SSH.
Scrivendo la configurazione Butane
-
Copia il seguente esempio in un editor di testo:
variant: fcos version: 1.6.0 passwd: users: - name: core ssh_authorized_keys: - ssh-rsa AAAA... -
Sostituisci la riga sopra che inizia con
ssh-rsacon il contenuto del tuo file di chiave pubblica SSH. -
Salva il file con il nome
example.bu.
| I file YAML devono avere un rientro consistente. Anche se Butane controlla gli errori di sintassi, assicurati che il rientro corrisponda all’esempio sopra. In generale, le configurazioni Butane devono conformarsi al formato delle specifiche di configurazione di Butane. |
Se usi VS Code con l’estensione Red Hat Yaml puoi associare i file *.bu a yaml nell’impostazione files.associations e ottenere aiuto/completamento automatico.
|
| Potresti anche impostare una password di accesso per la console (l’autenticazione tramite password su SSH è disabilitata). Vedi Utilizzo dell’autenticazione tramite password. |
Utilizzo di Butane
-
Esegui Butane sulla configurazione Butane:
butane --pretty --strict example.bu > example.ign -
Usa il file
example.ignper avviare Fedora CoreOS.
Se usi Butane su Windows, > example.ign creerà un file Ignition codificato in UTF-16. Ciò può impedire a Fedora CoreOS di avviarsi correttamente. Usa invece --output example.ign.
|
Want to help? Learn how to contribute to Fedora Docs ›