Windows镜像 配置cloudbase-init
2017-02-11 20:44
274 查看
http://blog.csdn.net/qq_21398167/article/details/51332660
使用cloudbase-init 注入密码的方法网上很多,这里主要是解决
在第一次创建实例时密码注入比较缓慢,用户会不需要密码直接进入到系统中,需要重启才会要求输入密码,这样会带来安全隐患
导致原因:配置文件会提前加载两个模块
这就会导致在设置好主机名以后重新加载所有模块,而此时系统已经启动了
用户已经进入系统,cloudbase-init 的程序还在后台运行设置密码和其它设置
为了解决这个问题,在代码中找到了所有模块加载的地方
C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\
opts = [
cfg.ListOpt(
'plugins',
default=[
'cloudbaseinit.plugins.common.mtu.MTUPlugin',
'cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin',
'cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin',
'cloudbaseinit.plugins.windows.createuser.CreateUserPlugin',
'cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin',
'cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin',
'cloudbaseinit.plugins.common.sshpublickeys.'
'SetUserSSHPublicKeysPlugin',
'cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin',
'cloudbaseinit.plugins.common.userdata.UserDataPlugin',
'cloudbaseinit.plugins.common.setuserpassword.'
'SetUserPasswordPlugin',
'cloudbaseinit.plugins.windows.winrmlistener.'
'ConfigWinRMListenerPlugin',
'cloudbaseinit.plugins.windows.winrmcertificateauth.'
'ConfigWinRMCertificateAuthPlugin',
'cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin',
],
help='List of enabled plugin classes, '
'to executed in the provided order'),
]
思路:将修改密码的模块放到配置文件中,让它开始就与设置主机名一起被执行
此时配置文件就会有三个模块需要提前加载运行
cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin
把cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin项加到cloudbase-init-unattend.conf 文件里plugins=配置项后面。原始配置只有上面两个plugin。
测试结果:成功
效果:用户在第一次创建的时候,到界面时提示需要输入密码,而不是直接进入系统了
使用cloudbase-init 注入密码的方法网上很多,这里主要是解决
在第一次创建实例时密码注入比较缓慢,用户会不需要密码直接进入到系统中,需要重启才会要求输入密码,这样会带来安全隐患
导致原因:配置文件会提前加载两个模块
cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin
cloudbaseinit.plugins.common.mtu.MTUPlugin
这就会导致在设置好主机名以后重新加载所有模块,而此时系统已经启动了
用户已经进入系统,cloudbase-init 的程序还在后台运行设置密码和其它设置
为了解决这个问题,在代码中找到了所有模块加载的地方
C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\
opts = [
cfg.ListOpt(
'plugins',
default=[
'cloudbaseinit.plugins.common.mtu.MTUPlugin',
'cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin',
'cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin',
'cloudbaseinit.plugins.windows.createuser.CreateUserPlugin',
'cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin',
'cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin',
'cloudbaseinit.plugins.common.sshpublickeys.'
'SetUserSSHPublicKeysPlugin',
'cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin',
'cloudbaseinit.plugins.common.userdata.UserDataPlugin',
'cloudbaseinit.plugins.common.setuserpassword.'
'SetUserPasswordPlugin',
'cloudbaseinit.plugins.windows.winrmlistener.'
'ConfigWinRMListenerPlugin',
'cloudbaseinit.plugins.windows.winrmcertificateauth.'
'ConfigWinRMCertificateAuthPlugin',
'cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin',
],
help='List of enabled plugin classes, '
'to executed in the provided order'),
]
思路:将修改密码的模块放到配置文件中,让它开始就与设置主机名一起被执行
此时配置文件就会有三个模块需要提前加载运行
cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin
cloudbaseinit.plugins.common.mtu.MTUPlugin
cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin
把cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin项加到cloudbase-init-unattend.conf 文件里plugins=配置项后面。原始配置只有上面两个plugin。
测试结果:成功
效果:用户在第一次创建的时候,到界面时提示需要输入密码,而不是直接进入系统了
相关文章推荐
- 为什么说FPGA是硬件并行的?
- CSS3入门学习之属性大全手册
- java8 遍历数组的几种方式
- jQuery来操作Radio的方法,通达OA二开实例
- 谈谈Java中的语法糖
- 关于类和面向对象的另一个维度
- Json转换利器Gson之实例五-实际开发中的特殊需求处理
- 为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?
- 前端问题(11)
- 关于android ndk的jni总结
- Zigbee深入浅出之开发环境搭建
- JVM的内存区域划分(网上找的)
- 变量的命名
- JavaScript中创建对象方法总结
- linux 跳过登陆修改用户密码
- jquery根据name属性获取input的值
- 异想家Win7系统安装的软件与配置
- redis-如何在工程中使用redis
- 2.11遇到的一些问题
- Json转换利器Gson之实例四-Map处理(下)