openstack使用cloud-init进行初始化
来源:互联网 发布:怎么注册企业淘宝店铺 编辑:程序博客网 时间:2024/05/20 18:49
在云平台中,创建云主机的时候希望能够对主机进行一些初始化操作,如配置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,主机名,ssh登录等。
上述流程中,在nova的user-data处,要注入的文件格式应为yaml格式,cloud-init默认读取的数据格式就是yaml格式。虚拟机中,cloud-init的配置文件为/etc/cloud/cloud.cfg,里面定义了系统启动过程中不同阶段所执行的模块,如下等:
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可以进行配置,将不需要的模块去掉,以加快启动速度,具体个模块含义见:
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
小笨驴在吃草的时候创建了微信公众号,为方便更多觅食的“小笨驴”,为大家准备了大量的免费基础教学资料以及技术解决方案,还会定时发布一些好的技术文章,当然也会扯扯蛋、谈谈人生、呵呵,希望我们这群乐于分享技术的“小笨驴”团队越来越大!
阅读全文
0 0
- openstack使用cloud-init进行初始化
- OpenStack Nova:虚拟机初始化user-data & Cloud-init
- Openstack 实现技术分解 (2) 虚拟机初始化工具 — Cloud-Init & metadata & userdata
- ubuntu安装cloud-init制作成openstack镜像---cloud-init篇
- openstack非DHCP网络配置注入和cloud-init分析
- openstack 密码注入之cloud-init 简单介绍
- 使用cloud-init实现虚拟机信息管理
- 使用Cloud-init配置管理员密码
- git初始化-git init使用
- 制作centos6.5 镜像,安装cloud-init 支持openstack 密码注入
- 制作centos6.5 镜像,安装cloud-init 支持openstack 密码注入
- 使用cloudbase-init初始化windows虚拟机
- js面向对象 不懂为什么要init进行初始化
- cloud-init configuration
- cloud-init资料
- suse 安装cloud-init
- redhat 安装cloud-init
- 如何debug cloud-init
- Java集合类(结合源码小结)
- oracle数据库的同义词Synonym与dblink关联,从而可以直接查询远程数据库的表,不用指定用户和@指定dblink名称
- linux上进程状态查询
- wireshark tcp 协议分析
- Kotlin 入门初体验
- openstack使用cloud-init进行初始化
- C语言之快速排序法学习笔记
- iOS开发-iOS8.0之后获取用户通知权限
- MySql按日期进行统计(前一天、本周、某一天)
- How to disable automatic updates on Fedora 25?
- KMP基础
- java算法
- 期刊整理(含impact)
- 解决import theano的错误