cloud-config
標準ファイルとは異なり、runcmd
CoreOScloud-config
ファイルにはオプションがありません。現在、次を my に追加して、CoreOS マシンでスワップを有効にしていますcloud-config
。
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
次に、CoreOS イメージを初期化した後、マシンに ssh して実行する必要があります。
sudo fallocate -l 1024m /1GiB.swap && sudo chmod 600 /1GiB.swap \
&& sudo chattr +C /1GiB.swap && sudo mkswap /1GiB.swap
sudo reboot
スワップが有効になる前 (例: で証明top
)。
ファイル自体で後者のコマンドを実行できるはずですが、フィールドcloud-config
なしでそのようなコマンドを実行する方法がわかりません。おそらくこれは、ユニットを編集するか、別のユニットを追加することで実行できますが、その方法はよくわかりません. runmcd
cloud-config
swap.service
unit
したがって、2 つの質問が残ります。(1) これは可能ですか、それとも最後のコマンドを手動で実行する必要があるのでしょうか。(2) 前者の場合、どのように?