Cloud-Init

如何在 CoreOS cloud-init 中設置 sysctl 變數?

  • January 3, 2016

我正在尋找一種sysctl在其cloud-init階段設置 CoreOS 設置的方法。

CoreOS 版本cloud-init僅允許少數配置指令,與正常的cloud-init. 例如,沒有runcmd部分(請參閱http://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/)。

systemd提供了一種sysctl通過文件管理設置的方法(http://www.freedesktop.org/software/systemd/man/sysctl.d.html)。我正在使用 CoreOScloud-init write_files部分在/etc/sysctl.d/50-nf_conntrack.conf. 但它不會被拾取,因為 CoreOS 雲配置是在sysctl.d配置已經發生之後發生的。

也許我可以以某種方式使用另一個systemd單元文件來重新啟動sysctl.d單元?這怎麼可能實現?

在 CoreOS github 問題跟踪器上查看答案: https ://github.com/coreos/bugs/issues/747#issuecomment-142764415

將來可能會有更簡單的方法,但現在您可以簡單地編寫一個單元來在 cloudinit 期間呼叫 systemd-sysctl;它將在 write_files 中指定的任何文件寫入後啟動:

#cloud-config 
.... 
coreos:
  units:
    - name: update-sysctl.service
      command: start
      content: |
        [Unit]
        Description=Update sysctl values written by cloud-config
        [Service]
        ExecStart=/usr/lib/systemd/systemd-sysctl ...

引用自:https://serverfault.com/questions/604197