本文共 1357 字,大约阅读时间需要 4 分钟。
在云平台中,创建云主机的时候希望能够对主机进行一些初始化操作,如配置ip,主机名,密码,ssh登录等,下面具体介绍cloud-init。
要实现在云主机中的初始化配置,首先就要让云主机获取到用户输入的配置数据,在cloud-init中以cdrom方式读取,即openstack将用户数据打包成iso挂载给云主机,云主机启动后内部的cloud-init默认从cdrom里面读取数据,然后进行初始化操作。 这里画个简图,可以看下数据注入流程:user: root disable_root: 0manage_etc_hosts: Truepreserve_hostname: Falsecloud_init_modules: - bootcmd - resizefs - set_hostname - update_hostname - update_etc_hosts - ca-certs - rsyslog - ssh
在制作镜像的时候,安装完cloud-init可以进行配置,将不需要的模块去掉,以加快启动速度,具体个模块含义见:
将用户数据打包成iso是在计算节点上进行的,需要mkisofs工具,在计算节点上安装:yum install genisoimage
或是
apt-get install genisoimage
nova的配置文件里也要配置:
force_config_drive=always
然后重启下nova-compute服务即可,可以通过nova命令行来进行测试:
nova boot --flavor flavor_id --image image_id --nic net-id=net_id --user-data config.yaml --availability-zone nova-compute:node_name vm_name
小笨驴在吃草的时候创建了微信公众号,为方便更多觅食的“小笨驴”,为大家准备了大量的免费基础教学资料以及技术解决方案,还会定时发布一些好的技术文章,当然也会扯扯蛋、谈谈人生、呵呵,希望我们这群乐于分享技术的“小笨驴”团队越来越大!