OpenStack解决非UEC镜像的虚拟机cloud-init不工作不能自动修改主机名称不能注入user data
2013-01-31 14:20
316 查看
最近几天因为系统定制化的需求,集中研究了一下OpenStack的user_data的相关细节OpenStack虚拟机的用户客制化方法(User Data),上一遍博文最后提到了只成功测试了ubuntu的cloudimage,而自己用mirrors上下载的iso镜像创建image后即使安装了cloud-init这个包,也会出现诸如在OpenStackdashboard中创建虚拟机时所填的主机名并未导入,user_data不可用等问题,查看cloud-init的log会显示
而正常的log应该会显示
日志显示找不到meadata source 169.254.169.254,这是一个内部的local source
昨晚在网上查找了大量资料,发现有关cloud-init的资料比较少,最后在rackspace的网站上发现了一份编辑镜像的代码,终于找到了方法。
按照OpenStack创建ubuntu镜像的官方文档,我们在安装系统后仅仅需要
然后实际上cloud-init包的安装是需要配置的,配置方法为
debconf-set-selections命令可以在包安装的时候对包进行必要的配置,配置参数NoCloud表示instance运行在一个简单的没有metadata服务的系统上,boot是后连接系统的local metadata sourcehttp://169.254.169.254:80。进行上述配置后,重新制作镜像,上述问题经试验一切正常。
稍后可能在研究下CentOS和Fedora上的解决方法供大家参考。
2012-10-30 14:57:43,189 - cloud-init[INFO]:cloud-init start running: Tue, 30 Oct 2012 06:57:43 +0000. up 6.99seconds 2012-10-30 14:57:43,249 - __init__.py[DEBUG]: searching for datasource in ['DataSourceNoCloudNet', 'DataSourceConfigDriveNet','DataSourceOVFNet', 'DataSourceMAAS'] 2012-10-30 14:57:43,269 - __init__.py[DEBUG]: Did not find datasource. searched classes: ['DataSourceNoCloudNet','DataSourceConfigDriveNet', 'DataSourceOVFNet','DataSourceMAAS']
而正常的log应该会显示
2012-10-31 10:56:38,008 - cloud-init[INFO]: cloud-init startrunning: Wed, 31 Oct 2012 02:56:37 +0000. up 8.83 seconds 2012-10-31 10:56:38,050 - __init__.py[DEBUG]: searching for datasource in ['DataSourceNoCloudNet', 'DataSourceOVFNet','DataSourceEc2'] 2012-10-31 10:56:53,270 - DataSourceEc2.py[DEBUG]: Using metadatasource: 'http://169.254.169.254' 2012-10-31 10:56:53,329 - DataSourceEc2.py[DEBUG]: crawl ofmetadata service took 0s 2012-10-31 10:56:53,329 - __init__.py[DEBUG]: found data sourceDataSourceEc2
日志显示找不到meadata source 169.254.169.254,这是一个内部的local source
昨晚在网上查找了大量资料,发现有关cloud-init的资料比较少,最后在rackspace的网站上发现了一份编辑镜像的代码,终于找到了方法。
按照OpenStack创建ubuntu镜像的官方文档,我们在安装系统后仅仅需要
sudo apt-get update sudo apt-get upgrade sudo apt-get install openssh-server cloud-init #Remove the network persistence rules from /etc/udev/rules.das their presence will result in #the network interface in the instance coming up as an interfaceother than eth0. sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
然后实际上cloud-init包的安装是需要配置的,配置方法为
echo "cloud-init cloud-init/datasources string NoCloud, OVF,Ec2" > /tmp/debconf-selections /usr/bin/debconf-set-selections /tmp/debconf-selections rm -f /tmp/debconf-selections apt-get -y install cloud-init
debconf-set-selections命令可以在包安装的时候对包进行必要的配置,配置参数NoCloud表示instance运行在一个简单的没有metadata服务的系统上,boot是后连接系统的local metadata sourcehttp://169.254.169.254:80。进行上述配置后,重新制作镜像,上述问题经试验一切正常。
稍后可能在研究下CentOS和Fedora上的解决方法供大家参考。
相关文章推荐
- Openstack Windows server2008R2镜像制作流程(自动注入密码,修改主机名,获取元数据)
- 制作centos6.5 镜像,安装cloud-init 支持openstack 密码注入
- 制作centos6.5 镜像,安装cloud-init 支持openstack 密码注入
- 虚拟机不能ping通宿主机问题的解决
- 虚拟机可以访问外网和主机,但是主机不能访问虚拟机的解决办法
- 解决zabbix自动发现主机后主机名称是IP地址的问题
- vmware ubuntu14.04虚拟机不能正常拷贝文件到windows且不能自适应虚拟机屏幕窗口自动变化的解决办法
- XCode6上设备或证书不能自动创建和修改的问题解决
- 虚拟机与主机不能ping通的解决方法
- 虚拟机和宿主机不能互ping的解决办法等
- 【VMWARE】使用VMware中主机和虚拟机不能互相复制文件的彻底解决办法
- vmware ubuntu14.04虚拟机不能正常拷贝文件到windows且不能自适应虚拟机屏幕窗口自动变化的解决办法
- 虚拟机与主机不能ping通的解决方法
- Openstack中使用Neutron GRE模式,ssh无法访问Ubuntu镜像生成的虚拟机的解决方法
- linux VMware(虚拟机) 不能自动获取IP地址(解决方法)
- 虚拟机的ubuntu经常自动断网以及已经显示了已连接的图标但不能上网的解决办法
- NAT模式下 宿主机与虚拟机不能Ping通的解决方式
- openstack 密码注入之cloud-init 简单介绍
- 计算机修改名称以后,SQL SERVER不能做发布问题的解决办法
- Vbox下虚拟机Ubuntu不能与主机的Xshell建立链接的问题以及解决办法