我已经部署了一个带有 VMware 镜像的 CoreOS 独立服务器,按照这个 guide 来体验 CoreOS。

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

但我想知道:

  • 是否可以在/etc/systemd/system中放置一个单元文件让systemd自动启动etcd服务?
  • 如果可以,单元文件的内容是什么?
  • 如果不能,其他方式是什么?

  • 谢谢

    最佳答案

  • 是的。你必须有一个带有安装部分的 etcd.service 和fleet.service。我在我的中添加了 WantedBy=default.target 。
  • 它们已经放置在/usr/lib64/systemd/system/中的 coreos 系统上。您可以将它们复制到/etc/systemd/system/:

  • $ cp/usr/lib64/systemd/system/etcd.service/etc/systemd/system/
    $ cp/usr/lib64/systemd/system/fleet.service/etc/systemd/system/
    $ echo -e '[安装]\nWantedBy=default.target >>/etc/systemd/system/fleet.service
    $ echo -e '[安装]\nWantedBy=default.target >>/etc/systemd/system/etcd.service
    $ systemctl 启用 etcd.service
    $ systemctl 启用fleet.service

    我也会在这里给你一个一般警告,我不知道从长远来看,/etc/systemd/做了什么更改,考虑到 CoreOSs 升级系统。升级可能会清除/etc/systemd/,让您对未由 cloud-init 管理的自定义 systemd 脚本发生的事情感到困惑。

    关于docker - 通过 systemd 在 CoreOS 中启用 etcd 服务自动启动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26752676/

    10-16 05:47