码迷,mamicode.com
首页 > 其他好文 > 详细

Cloud-init

时间:2015-01-21 14:58:47      阅读:575      评论:0      收藏:0      [点我收藏+]

标签:

 
博客
 

cloud-init for windows

- 启动一个云主机,制作模板
- 安装cloudbase-init.msi程序,见百度云盘
- 修改代码,允许重复加载插件(测试时使用)
   >程序:C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Init\Python27\Lib\site-packages\cloudbaseinit\init.py
   >方法:_exec_plugin
   >修改为:
   
plugin_name = plugin.get_name()
status = self._get_plugin_status(osutils, instance_id, plugin_name)
LOG.info(‘Executing plugin \‘%s\‘‘, plugin_name)
try:
    (status, reboot_required) = plugin.execute(service,
                                                  shared_data)
    self._set_plugin_status(osutils, instance_id, plugin_name,
                                    status)
     return reboot_required
except Exception, ex:
     LOG.error(‘plugin \‘%(plugin_name)s\‘ failed with error ‘
                      ‘\‘%(ex)s\‘‘, {‘plugin_name‘: plugin_name, ‘ex‘: ex})
     LOG.exception(ex)

  

 
- 编写测试脚本
 
import os

def test() :
  fl = open(‘c:\hujin.log‘,‘wb‘)
  fl.write(‘hello,world‘)
  fl.close()

if main == ‘name‘:
  test()

  

- 启动Cloud Initialization Service 服务
 
 
cloud-init for linux
待更新
 
 
源码流程说明
- 程序首先判断操作系统类型,加载对应的模块
- 加载服务,服务共分为四种:
 
  ‘cloudbaseinit.metadata.services.httpservice.HttpService‘,
  ‘cloudbaseinit.metadata.services.configdrive.ConfigDriveService‘,
  ‘cloudbaseinit.metadata.services.ec2service.EC2Service‘,
  ‘cloudbaseinit.metadata.services.maasservice.MaaSHttpService‘

  

目前openstack中我们会用第一种,使用http获取openstack的元数据服务
- 加载插件,插件共分为:
 
  ‘cloudbaseinit.plugins.windows.mtu.MTUPlugin‘,
  ‘cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin‘,
  ‘cloudbaseinit.plugins.windows.sethostname.SetHostNamePlugin‘,
  ‘cloudbaseinit.plugins.windows.createuser.CreateUserPlugin‘,
  ‘cloudbaseinit.plugins.windows.networkconfig.NetworkConfigPlugin‘,
  ‘cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin‘,
  ‘cloudbaseinit.plugins.windows.sshpublickeys.‘
  ‘SetUserSSHPublicKeysPlugin‘,
  ‘cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin‘,
  ‘cloudbaseinit.plugins.windows.userdata.UserDataPlugin‘,
  ‘cloudbaseinit.plugins.windows.setuserpassword.‘
  ‘SetUserPasswordPlugin‘,
  ‘cloudbaseinit.plugins.windows.winrmlistener.‘
  ‘ConfigWinRMListenerPlugin‘,
  ‘cloudbaseinit.plugins.windows.winrmcertificateauth.‘
  ‘ConfigWinRMCertificateAuthPlugin‘,
  ‘cloudbaseinit.plugins.windows.localscripts.LocalScriptsPlugin‘,
上面windows中就是使用localscript插件
-  执行插件
- 根据配置重启机器
 
 

Cloud-init

标签:

原文地址:http://www.cnblogs.com/smallcoderhujin/p/4238609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!