Vedo che a differenza del file standard cloud-config
, non esiste l'opzione runcmd
in un file CoreOS cloud-config
. Attualmente, io consentire di swap su una macchina CoreOS aggiungendo la seguente al mio cloud-config
:esegue i comandi in una configurazione cloud CoreOS (ad esempio per aggiungere swap)
units:
- name: swap.service
command: start
content: |
[Unit]
Description=Turn on swap
[Service]
Type=oneshot
Environment="SWAPFILE=/1GiB.swap"
RemainAfterExit=true
ExecStartPre=/usr/sbin/losetup -f ${SWAPFILE}
ExecStart=/usr/bin/sh -c "/sbin/swapon $(/usr/sbin/losetup -j ${SWAPFILE} | /usr/bin/cut -d : -f 1)"
ExecStop=/usr/bin/sh -c "/sbin/swapoff $(/usr/sbin/losetup -j ${SWAPFILE} | /usr/bin/cut -d : -f 1)"
ExecStopPost=/usr/bin/sh -c "/usr/sbin/losetup -d $(/usr/sbin/losetup -j ${SWAPFILE} | /usr/bin/cut -d : -f 1)"
[Install]
WantedBy=local.target
Poi, dopo l'inizializzazione la mia immagine CoreOS devo ssh nella macchina ed eseguire:
sudo fallocate -l 1024m /1GiB.swap && sudo chmod 600 /1GiB.swap \
&& sudo chattr +C /1GiB.swap && sudo mkswap /1GiB.swap
sudo reboot
prima swap essere abilitato (ad es. come evidenziato da top
).
Sembra come dovrei essere in grado di realizzare questi ultimi comandi nel file cloud-config
in sé, ma non sono chiare su come posso eseguire tali comandi senza un campo runmcd
in cloud-config
. Forse questo può essere fatto modificando la mia unità swap.service
o magari aggiungendo un altro unit
, ma non ho capito bene come.
Quindi, questo mi lascia con due domande: (1) Questo può essere fatto o sarà sempre necessario eseguire gli ultimi comandi manualmente? (2) Se il primo, allora come?