2014-04-23 29 views
10

我目前正在處理CoreOS,到目前爲止我想我已經有了整體的想法和概念。我還沒有得到的一件事是執行cloud-initcloud-init何時運行以及它如何查找其數據?

我知道cloud-init是一個爲CoreOS做一些配置的過程。我還不知道的是...

  • CoreOS何時運行cloud-init?首次開機?在每次開機? ...?
  • cloud-init如何知道在哪裏可以找到它的配置數據?我已經看到有config-drive這完全合理,但這是唯一的方法嗎? user-data文件的作用究竟是什麼? ...?

回答

15

在啓動過程中,CoreOS幾次運行cloudinit。現在每次啓動都會發生這種情況,但該功能在未來可能會發生變化。

第一遍是OEM cloud-init,它貼到映像中以設置該提供程序所需的網絡連接和其他功能。這是EC2,Rackspace,谷歌計算引擎等完成的,因爲它們都有不同的要求。你可以看到這些文件on Github

第二遍是用戶數據傳遞,每個提供者處理方式不同。例如,EC2允許用戶在他們的UI中輸入自由形式的文本,該文本存儲在他們的元數據服務中。 EC2 OEM有一個單元,它讀取這個元數據並將它傳遞給第二次雲初始化運行。在Rackspace/Openstack上,config-drive用於安裝包含用戶數據的只讀文件系統。 Rackspace和Openstack OEM知道在該位置安裝並查找用戶數據文件。

CoreOS的最新版本還有一個標誌,用於獲取遠程文件,以便與PXE引導一起使用進行評估。

CoreOS distribution docs還有一些細節。

+0

非常好的答案,謝謝!特別是有關OEM和用戶數據通行證的提示非常有用:-))。非常感謝你的幫助! –

+0

因此,流浪者在vm盒子'coreos-cloudinit-vagrant-user.path'中發佈了一個特殊的單元。那麼加載用戶配置的唯一默認單位是配置驅動器和'coreos-install'? – bara

相關問題