什么时候运行cloud-init以及它如何找到它的数据?

时间:2014-04-23 06:36:42

标签: cloud-init coreos

我目前正在处理CoreOS,到目前为止,我认为我有了整体的想法和概念。我还没有得到的一件事是执行cloud-init

我知道cloud-init是为CoreOS执行某些配置的过程。我还不明白的是......

  • CoreOS何时运行cloud-init?在第一次启动?每次开机? ...?
  • cloud-init如何知道在何处查找其配置数据?我已经看到有config-drive并且完全有道理,但这是唯一的方法吗? user-data文件的作用究竟是什么? ...?

1 个答案:

答案 0 :(得分:15)

CoreOS在启动过程中运行了几次cloudinit。现在这发生在每次启动时,但该功能可能在将来发生变化。

第一步是OEM cloud-init,它被烘焙到映像中以设置该提供商所需的网络和其他功能。这适用于EC2,Rackspace,Google Compute Engine等,因为它们都有不同的要求。您可以看到这些文件on Github

第二遍是用户数据传递,每个提供者的处理方式不同。例如,EC2允许用户在其UI中输入自由格式文本,该文本存储在其元数据服务中。 EC2 OEM有一个单元,可以读取此元数据并将其传递给第二个cloud-init运行。在Rackspace / Openstack上,config-drive用于挂载包含用户数据的只读文件系统。 Rackspace和Openstack OEM知道在该位置安装和查找用户数据文件。

最新版本的CoreOS还有一个标志,用于获取要评估的远程文件以用于PXE引导。

CoreOS distribution docs还有一些细节。