Gestione di file, directory e collegamenti

Puoi usare Ignition per creare, sostituire o aggiornare file, directory o collegamenti.

Questo esempio crea una directory con il modo predefinito (impostato su 0755: leggibile e ricorsiva per tutti), e scrivibile solo dal proprietario (per impostazione predefinita root).

Esempio per creare una directory con proprietà e permessi predefiniti
variante: fcos
versione: 1.7.0
archiviazione:
  directory:
  - percorso: /opt/tools
    sovrascrivi: true

Questo esempio crea un file denominato /var/helloworld con un contenuto definito in linea. Imposta anche la modalità del file a 0644 (leggibile da tutti, scrivibile dal proprietario) e imposta la proprietà a dnsmasq:dnsmasq.

Esempio per creare un file con contenuto in-line
variant: fcos
version: 1.7.0
storage:
  files:
    - path: /var/helloworld
      overwrite: true
      contents:
        inline: Hello, world!
      mode: 0644
      user:
        name: dnsmasq
      group:
        name: dnsmasq

Questo esempio crea un file con il suo contenuto recuperato da una posizione remota. In questo caso, recupera un URL HTTPS e si aspetta che il file sia compresso con gzip, e lo decomprime prima di scriverlo sul disco. Il contenuto decompresso viene verificato rispetto al valore hash specificato nella configurazione. Il formato è sha512- seguito dai 128 caratteri esadecimali forniti dal comando sha512sum. Il file risultante viene reso leggibile ed eseguibile da tutti.

Esempio per creare un file da una sorgente remota
variant: fcos
version: 1.7.0
storage:
  files:
    - path: /opt/tools/transmogrifier
      overwrite: true
      contents:
        source: https://mytools.example.com/path/to/archive.gz
        compression: gzip
        verification:
          hash: sha512-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
      mode: 0555

Questo esempio crea un collegamento simbolico in /usr/local/bin a un percorso in /opt. Questo è utile per permettere ai processi locali di invocare un programma senza modificare la variabile d’ambiente PATH.

Esempio per creare un collegamento simbolico (symbolic link)
variant: fcos
version: 1.7.0
storage:
  links:
    - path: /usr/local/bin/transmogrifier
      overwrite: true
      target: /opt/tools/transmogrifier
      hard: false

Se hai bisogno che una directory e alcuni dei suoi genitori siano di proprietà di uno specifico utente, attualmente devi elencarli esplicitamente nella tua configurazione Butane. Vedi butane#380 per l’issue di tracciamento in Butane per una futura sintassi migliore per questo caso.

Esempio per creare directory con una proprietà specifica
variant: fcos
version: 1.7.0
storage:
  directories:
    - path: /home/builder/.config
      user:
        name: builder
      group:
        name: builder
    - path: /home/builder/.config/systemd
      user:
        name: builder
      group:
        name: builder
    - path: /home/builder/.config/systemd/user
      user:
        name: builder
      group:
        name: builder
    - path: /home/builder/.config/systemd/user/default.target.wants
      user:
        name: builder
      group:
        name: builder
    - path: /home/builder/.config/systemd/user/timers.target.wants
      user:
        name: builder
      group:
        name: builder
    - path: /home/builder/.config/systemd/user/sockets.target.wants
      user:
        name: builder
      group:
        name: builder