我看到这与标准不同 cloud-config
文件,没有 runcmd
CoreOS中的选项 cloud-config
文件。目前,我通过在我的网站上添加以下内容来启用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
文件本身,但我不知道如何在没有a的情况下运行这些命令 runmcd
在 cloud-config
。也许这可以通过编辑我的方式来完成 swap.service
单位或可能通过添加另一个 unit
,但我还没弄清楚怎么样。
所以,这给我留下两个问题:(1)可以这样做还是总是需要手动运行最后的命令? (2)如果是前者,那怎么样?