openstack 制作winserver2008_R2镜像 用cloudbase-init 实现第一次创建就注入密码(需登录)
2016-05-06 16:45
489 查看
使用cloudbase-init 注入密码的方法网上很多,这里主要是解决
在第一次创建实例时密码注入比较缓慢,用户会不需要密码直接进入到系统中,需要重启才会要求输入密码,这样会带来安全隐患
导致原因:配置文件会提前加载两个模块
这就会导致在设置好主机名以后重新加载所有模块,而此时系统已经启动了
用户已经进入系统,cloudbase-init 的程序还在后台运行设置密码和其它设置
为了解决这个问题,在代码中找到了所有模块加载的地方
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.sethostname.SetHostNamePlugin
cloudbaseinit.plugins.common.mtu.MTUPlugin
这就会导致在设置好主机名以后重新加载所有模块,而此时系统已经启动了
用户已经进入系统,cloudbase-init 的程序还在后台运行设置密码和其它设置
为了解决这个问题,在代码中找到了所有模块加载的地方
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
测试结果:成功
效果:用户在第一次创建的时候,到界面时提示需要输入密码,而不是直接进入系统了
相关文章推荐
- Patrol 7 架构下?的处理方法
- 清除IE分级审查密码
- 华为路由器密码恢复
- 注册表导出管理员密码文件
- 路由器版本与密码恢复
- 交换机升级排障实例
- 密码知识教程一
- 密码破解全教程
- 通过批处理修改FTP账号和密码
- redis中修改配置文件中的端口号 密码方法
- 更改Mysql root用户密码
- C#判断密码强度的方法
- C#使用伪随机数实现加密用户密码的方法
- sql2008启动代理未将对象应用到实例解决方案
- Mysql5.6 忘记root密码的解决办法
- C#修改及重置电脑密码DirectoryEntry实现方法
- MySql5.5忘记root密码怎么办
- C#实现在控制台输入密码显示星号的方法
- Mysql忘记root密码怎么办
- 深入密码加salt原理的分析