openstack 制作winserver2008_R2镜像 用cloudbase-init 实现第一次创建就注入密码(需登录)

使用cloudbase-init 注入密码的方法网上很多,这里主要是解决

在第一次创建实例时密码注入比较缓慢,用户会不需要密码直接进入到系统中,需要重启才会要求输入密码,这样会带来安全隐患

导致原因:配置文件会提前加载两个模块

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

测试结果:成功

效果:用户在第一次创建的时候,到界面时提示需要输入密码,而不是直接进入系统了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值