cloud-init资料

转载自:http://www.cnblogs.com/smallcoderhujin/p/4238609.html

cloud-init用于在创建虚拟机时通过元数据服务对虚拟机基本配置,包括常见的主机名,用户,密码等等。同时用户可以通过user_data自定义一些数据对虚拟机进行配置,可以有配置文件cloud-config或者直接给定脚本,支持常见的shell cmd python脚本

 
 
博客
 

cloud-init for windows

- 启动一个云主机,制作模板
- 安装cloudbase-init.msi程序,见百度云盘
- 修改代码,允许重复加载插件(测试时使用)
   >程序:C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Init\Python27\Lib\site-packages\cloudbaseinit\init.py
   >方法:_exec_plugin
   >修改为:
   
1
2
3
4
5
6
7
8
9
10
11
12
13
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)

  

 
- 编写测试脚本
 
1
2
3
4
5
6
7
8
9
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
待更新
 
 
源码流程说明
- 程序首先判断操作系统类型,加载对应的模块
- 加载服务,服务共分为四种:
 
1
2
3
4
'cloudbaseinit.metadata.services.httpservice.HttpService' ,
'cloudbaseinit.metadata.services.configdrive.ConfigDriveService' ,
'cloudbaseinit.metadata.services.ec2service.EC2Service' ,
'cloudbaseinit.metadata.services.maasservice.MaaSHttpService'

  

目前openstack中我们会用第一种,使用http获取openstack的元数据服务
- 加载插件,插件共分为:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'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插件
-  执行插件
- 根据配置重启机器
 
 
PS
目前主要功能有
  • 创建新用户
  • 修改用户密码
  • 添加用户到指定用户组
  • 获取用户home目录
  • 设置主机名
  • 获取网卡信息
  • 获取DHCP信息
  • 设置NTP
  • 设置静态IP
  • 判断服务是否存在
  • 获取服务状态
  • 设置服务启动模式
  • 启动服务
  • 关闭服务
  • 获取默认网关
  • 获取CD驱动
  • 获取物理磁盘
  • 创建防火墙规则
  • 删除防火墙规则
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值