Creazione di un file di configurazione Ignition
Lo strumento Butane è l’opzione preferita per creare un file di configurazione di Ignition. Butane utilizza un file YAML Butane Config e produce una Ignition Config in formato JSON. Il file JSON viene utilizzato dal sistema al primo avvio. La Ignition Config applica la configurazione nell’immagine, come la creazione di utenti e l’installazione di unità systemd.
-
Hai installato podman oppure Butane v0.20.0 o versione successiva:
-
Crea un file di configurazione Butane Config e salvalo nel formato .bu. Per le immagini Fedora IoT, devi specificare la voce variant come fiot e la voce version come 1.0.0. La variante fiot di butane nella versione 1.0.0 si riferisce alla specifica Ignition versione 3.3.0. Di seguito è riportato un esempio di file YAML di configurazione Butane:
variant: fiot version: 1.0.0 ignition: config: merge: - source: http://192.168.122.1/config.ign passwd: users: - name: core groups: - wheel password_hash: password_hash_here ssh_authorized_keys: - ssh-ed25519 some-ssh-key-here storage: files: - path: /etc/NetworkManager/system-connections/enp1s0.nmconnection contents: inline: | [connection] id=enp1s0 type=ethernet interface-name=enp1s0 [ipv4] address1=192.168.122.10/24,192.168.122.1 dns=8.8.8.8; dns-search= may-fail=false method=manual mode: 0600 - path: /usr/local/bin/startup.sh contents: inline: | #!/bin/bash echo "Hello, World!" mode: 0755 systemd: units: - name: hello.service contents: | [Unit] Description=A hello world [Install] WantedBy=multi-user.target enabled: true - name: fdo-client-linuxapp.service dropins: - name: log_trace.conf contents: | [Service] Environment=LOG_LEVEL=trace -
Esegui il seguente comando per utilizzare il file YAML di configurazione
Butane Confige generare una configurazione Ignition in formato JSON:$ podman run -i --rm quay.io/coreos/butane --pretty --strict < fiot.bu | tee fiot.ign { "ignition": { "config": { "merge": [ { "source": "http://192.168.122.1/config.ign" } ] }, "version": "3.4.0" }, "passwd": { "users": [ { "groups": [ "wheel" ], "name": "core", "passwordHash": "password_hash_here", "sshAuthorizedKeys": [ "ssh-ed25519 some-ssh-key-here" ] } ] }, "storage": { "files": [ { "path": "/etc/NetworkManager/system-connections/enp1s0.nmconnection", "contents": { "compression": "gzip", "source": "data:;base64,H4sIAAAAAAAC/1SKwQrCMBAF7/stNjahSEX2S0oPS/JKA822JKvQvxcFDzKnGWaKuyqi5V1nyomhh2892XmAYSuqwiiroS4S0akU/J4pH69hJkmpojXP/h6cv43Oh+B8fw3D5a9Q0saj+/L4SNcgNa5MRc5ukbzxIlsDFdi6Jy6iT9noHQAA//9IedCQoQAAAA==" }, "mode": 384 }, { "path": "/usr/local/bin/startup.sh", "contents": { "compression": "", "source": "data:;base64,IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8sIFdvcmxkISIK" }, "mode": 493 } ] }, "systemd": { "units": [ { "contents": "[Unit]\nDescription=A hello world\n[Install]\nWantedBy=multi-user.target\n", "enabled": true, "name": "hello.service" }, { "dropins": [ { "contents": "[Service]\nEnvironment=LOG_LEVEL=trace\n", "name": "log_trace.conf" } ], "name": "fdo-client-linuxapp.service" } ] } }Dopo aver eseguito il file YAML
Butane Configper verificare e generare il file JSONIgnition Config, potresti ricevere avvisi quando utilizzi campi non supportati, come le partizioni, ad esempio. Puoi correggere quei campi e rieseguire la verifica.
Ora disponi di un file di configurazione JSON Ignition che puoi utilizzare per personalizzare la tua installazione.
Want to help? Learn how to contribute to Fedora Docs ›