2014-11-05 114 views
4

我已經部署了一個帶有VMware映像的CoreOS standealone服務器,請參閱此guide以體驗CoreOS。通過systemd在CoreOS中啓用etcd服務自動啓動

部署成功後,我發現我的CoreOS只啓用Docker服務,沒有etcd和艦隊服務運行。儘管我知道如何使用systemd手動運行etcd和車隊服務。我也知道使用適當的cloud-config可以安裝CoreOS,其中etcd和fleet service會自動啓動。

但我想知道:

  1. 是否有可能將一個單元文件/etc/systemd/system使systemd自動啓動ETCD服務?
  2. 如果可以,單元文件的內容是什麼?
  3. 如果不能,那麼另一種方式是什麼?

感謝

回答

2

正確的方式做,這是cloud-config。特別是對於VMware,您需要通過文檔config-drive來提供雲配置。

這是一種痛苦,但它會起作用。

+0

謝謝。那麼cloud-config是唯一能夠自動啓動服務的方式嗎? – 2014-11-06 04:16:46

+0

具體而言,單元文件是自動啓動事物的唯一方式,但您如何創建它們取決於您。您可以在units參數下的cloud-config中提供它們。你也可以把它們放在/ etc/systemd/system的磁盤上。 – Rob 2014-11-07 18:39:40

5
  1. 是的。你必須有一個etcd.service和帶有Install部分的fleet.service。我在我的網站中添加了WantedBy = default.target。

  2. 它們已經放置在/ 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管理。

+0

雖然這會起作用,但遵循最佳實踐並使用雲配置要好得多,特別是對於CoreOS。如果你在生產中使用它,那麼使用雲配置來複制這些是非常有益的。 – 2015-06-02 14:25:43