AWS 现状:通过Metadata Service + Cloud-init(Linux) / EC2Config(Windows)实现用户信息注入
Cloud-init:开源项目
(1)设置主机名
(2)密钥对注入
(3)系统分区AutoResize(扩展至磁盘大小)
(4)用户数据:自定义脚本、cloud-init配置数据、自定义数据
EC2Config:AWS私有实现(功能类似cloud-init)
(1)设置主机名
(2)设置管理员账户的随机密码,公钥加密输出到console
(3)系统分区AutoResize(扩展至磁盘大小)
(4)执行用户数据
开源cloud-init工作原理介绍:
cloudinit是专为云环境中虚拟机的初始化而开发的工具,用于在创建虚拟机启动时从各种数据源读取相关数据并据此对虚拟机进行自定义配置。
cloud-init的配置数据分为:metadata(主机名、密码、网络配置信息和SSH密钥)和user data(命令、脚本、文件和自定义数据等)。
1、Config Drive数据源:
这种方式用户数据并不是从网络上获取,用户数据在虚拟机启动前已经写好放到以volume里边,开机挂载读取。config drive的默认格式是一个“ISO 9660”的文件系统,也支持 VFAT。这方式的优势是不依赖网络,避免了一些网络问题,可以对虚拟机启动过程中进行配置。当虚拟机无法通过DHCP正确获取网络信息时,config drive是获取metadata信息的必要方式。该方式常用于私有云;2、Metadata元数据服务器 RESTful:
如果虚拟机能够自动正确配置网络,那么可以通