韩国购物网站有哪些,动漫网站策划书,小程序制作价格,嵊州网站建设cloud-init 是 linux 的一个工具#xff0c;当系统启动时#xff0c;cloud-init 可从 nova metadata 服务或者 config drive 中获取 metadata#xff0c;完成包括但不限于下面的定制化工作#xff1a; 设置 default locale 设置 hostname 添加 ssh keys到 .ssh/authorize… cloud-init 是 linux 的一个工具当系统启动时cloud-init 可从 nova metadata 服务或者 config drive 中获取 metadata完成包括但不限于下面的定制化工作 设置 default locale 设置 hostname 添加 ssh keys到 .ssh/authorized_keys 设置用户密码 配置网络 安装软件包 为了实现 instance 定制工作cloud-init 会按 4 个阶段执行任务 local init config final cloud-init 安装时会将这 4 个阶段执行的任务以服务的形式注册到系统中比如在 systemd 的环境下我们能够看到这4个阶段分别对应的服务 local - cloud-init-local.service init - cloud-init.service config - cloud-config.service final - cloud-final.service local 阶段 作为 cloud-init 执行的第一个阶段此时 instance 还不知道该如何配置网卡cloud-init 的任务就是从 config drive 中获取配置信息然后写入 /etc/network/interfaces 文件如果是 centos 则写入 /etc/sysconfig/network-scripts/ifcfg-xxx。 如果没有 config drive则将所有网卡配置成 dhcp 模式。这是非常关键的一步只有当网卡正确配置后才能获取到 metadata。 关于 local 阶段下一节会通过实验详细分析。 init, config 和 final 阶段 正常情况下在这三个阶段执行之前 instance 网络已经配置好了并且已经成功获取到 metadata。cloud-init 的配置文件 /etc/cloud/cloud.cfg 定义了三个阶段分别要执行的任务任务以 module 形式指定。 instance 真正的定制工作就是由这些 module 完成的。module 决定做哪些定制化工作而 metadata 则决定最终定制化的结果。 举个例子如果 cloud.cfg 中指定了 set_hostname 这个 module则意味着 cloud-int 会设置 instance 的主机名而具体设置成哪个主机名则由 metadata 中 hostname 参数决定。 有些 module 是有默认行为的比如 growpart如果 metadata 中没有特别指定它会自动扩展 / 分区。 由于篇幅限制这里就不一一讨论每个 module 了具体可参看文档 https://cloudinit.readthedocs.io/en/latest/topics/modules.html 后面我们会讨论 cloud-init 典型的使用场景其中也会涉及常用 module 的示例。