本文目的
在独立单机环境下使用 qemu , 启动 kvm 时,利用 cloud-init 进行配置定义
因为云平台例如 openstack 已自带 cloud-init 封装,不需要我们手动进行配置定义
作者总结
cloud-init 需要手动维护
每个 kvm 启动都需要一个独立的 ISO (IP地址需要独立配置嘛)
只是在某些没有 IP 地址管理的情况下才适用
只是为了对 openstack 下 cloud-init 进行一个单机下原理的了解
本文例子
IP 地址配置
软件安装
puppet 管理
用户添加
用户命令行使用方法
什么是 cloud-init
- 可以把 cloud-init 看成一种服务,这种服务可以在主机启动而且还没有 IP 地址的情况下去获取一些配置信息
- 该服务用于在机器启动时候读取到 meta-data, user-data 配置, 主要用于定义,配置该主机, 例如主机名,IP 地址,软件管理等等功能
- 常见 cloud-init 支持 Debian, RHEL/CentOS, Gentoo ,Ubuntu 版本
- 在多种云平台中都会支持 cloud-init 功能, 例如 Amazon, Azure, Google Cloud, Oracle Cloud, IBM Cloud, CloudStack,OpenNebula, CloudSigma
cloud-init 可以做什么
- 文件添加
- kernel cmd 修改
- 磁盘配置
- 安装软件
- 时间服务器配置
- 用户添加
- 网络配置,dns 配置
- yum 源管理
- 用户自定义命令行脚本
参考 qemu 网络模型
cloud-init 配置
kvm 配置
在 kvm 模板中安装 cloud-init 软件包
cloud-init-18.5-3.el7.centos.x86_64.rpm 下载
必须要把网卡配置为 eth0
网卡必须设定为 dhcp 状态
修改内核,定义网卡为 eth0 (centos7)
/etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet crashkernel=128M net.ifnames=0 biosdevname=0"
执行命令生效
grub2-mkco