通过systemd在CoreOS中启用etcd服务自动启动
我已经部署了一个带有VMware映像的CoreOS standealone服务器,请参阅此guide以体验CoreOS。通过systemd在CoreOS中启用etcd服务自动启动
部署成功后,我发现我的CoreOS只启用Docker服务,没有etcd和舰队服务运行。尽管我知道如何使用systemd手动运行etcd和车队服务。我也知道使用适当的cloud-config可以安装CoreOS,其中etcd和fleet service会自动启动。
但我想知道:
- 是否有可能将一个单元文件
/etc/systemd/system
使systemd自动启动ETCD服务? - 如果可以,单元文件的内容是什么?
- 如果不能,那么另一种方式是什么?
感谢
是的。你必须有一个etcd.service和带有Install部分的fleet.service。我在我的网站中添加了WantedBy = default.target。
它们已经放置在/ usr/lib64/systemd/system /中的coreos系统上。你可以将它们复制到/ etc/systemd /系统/:
$ 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
我还会在这里给你的一般警告,我不知道有什么变化到/ etc/systemd /做中长运行,给出了CoreOS的升级系统。升级可能会消除/ etc/systemd /使您处于困惑状态,以至于您的自定义systemd脚本不由cloud-init管理。
虽然这会起作用,但遵循最佳实践并使用云配置要好得多,特别是对于CoreOS。如果你在生产中使用它,那么使用云配置来复制这些是非常有益的。 – 2015-06-02 14:25:43
谢谢。那么cloud-config是唯一能够自动启动服务的方式吗? – 2014-11-06 04:16:46
具体而言,单元文件是自动启动事物的唯一方式,但您如何创建它们取决于您。您可以在units参数下的cloud-config中提供它们。你也可以把它们放在/ etc/systemd/system的磁盘上。 – Rob 2014-11-07 18:39:40