刚创出来的虚拟机,要如何设置初始密码?如何添加环境变量?如何进行一系列的预置操作?
答案就是cloud-init。
当前正在搞openstack+lxc,也需要在创容器的时候注入一些信息,比如初始密码,开启SSH密码登录,允许root等等,就顺手记录cloud-init一下。
对于open stack来说,cloud-init可以通过两种方式获取数据
- config drive
- 通过meta-data服务获取
config drive
大概原理及流程
- 生成相关的meta-data.json, user-data
- 制作iso9xxx格式的iso
- 挂载到/dev/vdb
- cloud-init配置datasource为config drive
- cloud-init读取,进行配置
meta-data
- nova有个meta-data服务
- 创虚拟机的时候,配置一条路由169.254.169.254
- cloud-init配置datasource为openstack
- 从http://169.254.169.254/openstack获取meta-data.json
- 进行配置
user-data
nova boot –user-data config.txt
1 | #cloud-config |
参考
https://help.ubuntu.com/community/CloudInit
http://www.ibm.com/developerworks/cn/cloud/library/1509_liukg_openstackmeta/index.html
http://www.chenshake.com/openstack-mirror-and-password/
本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/