在云平台中,创建云主机的时候希望能够对主机进行一些初始化操作,如配置ip,主机名,密码,ssh登录等,下面具体介绍cloud-init。
要实现在云主机中的初始化配置,首先就要让云主机获取到用户输入的配置数据,在cloud-init中以cdrom方式读取,即openstack将用户数据打包成iso挂载给云主机,云主机启动后内部的cloud-init默认从cdrom里面读取数据,然后进行初始化操作。
这里画个简图,可以看下数据注入流程:
首先在云管理平台上,用户输入数据,密码,主机名,或者是可选ip(如果没有dhcp)等,然后发起对openstack调用,中间层将数据传入openstack,到nova层创建主机,命令行处以user-data方式进行注入,调用到计算节点利用driver创建虚机时,会先将用户数据大包成iso,这部分由configdrive完成,然后将iso直接挂给虚拟机作为cdro使用,虚机系统启动后运行cloud-init服务,会先找cdrom来读取数据,然后再根据模块来进行初始化,配置ip