通过systemd启用CoreOS中的etcd服务自动启动

时间:2014-11-05 08:32:32

标签: docker systemd coreos etcd

我已经部署了带有VMware映像的CoreOS standealone服务器,请按此guide体验CoreOS。

部署成功后,我发现我的CoreOS只启用了Docker服务,没有运行etcd和fleet服务。虽然我知道如何使用systemd手动运行etcd和fleet服务。而且我也知道使用合适的cloud-config可以安装CoreOS,其中etcd和fleet服务自动启动。

但我想知道:

  1. 是否可以在/etc/systemd/system中放置单元文件以自动启动systemd服务?
  2. 如果可以,单位文件的内容是什么?
  3. 如果不能,那么另一种方式是什么?
  4. 由于

2 个答案:

答案 0 :(得分:5)

  1. 是。您必须有一个带有Install部分的etcd.service和fleet.service。我在我的网站上添加了WantedBy = default.target。

  2. 它们已经放在/ usr / lib64 / systemd / system /中的coreos系统上。您可以将它们复制到/ etc / systemd / system /:

  3. $ cp /usr/lib64/systemd/system/etcd.service /etc/systemd/system/
    $ cp /usr/lib64/systemd/system/fleet.service /etc/systemd/system/
    $ echo -e '[Install]\nWantedBy=default.target >> /etc/systemd/system/fleet.service
    $ echo -e '[Install]\nWantedBy=default.target >> /etc/systemd/system/etcd.service
    $ systemctl enable etcd.service
    $ systemctl enable fleet.service
    

    我还会在这里给出一般性警告,鉴于CoreOSs升级系统,我不知道从长远来看对/ etc / systemd /做了什么更改。升级可能会消除/ etc / systemd /使您处于困惑状态,因为您的自定义系统脚本发生了什么,而不是由cloud-init管理。

答案 1 :(得分:2)

执行此操作的正确方法是使用cloud-config。特别是对于VMware,您需要通过config-drive提供的云配置服务。

这是一种痛苦,但它会起作用。