• 使用cloudbase-init初始化windows虚拟机


    CloudBase-init简介

    cloudbase-init 是 Windows 和其他系统的云初始化程序,可以设置主机名、创建用户、设置静态ip、设置密码等。对应的linux初始化程序是cloudinit,都是开源的Python项目。官方文档:http://cloudbase-init.readthedocs.io/en/latest/index.html

    cloudbase-init主要包括两部分services和plugins。Service主要为plugins提供数据来源,来源包括指定的云服务(openstack、ec2等)、本地配置文件(iso文件、物理磁盘)等。plugins即为执行相关操作的插件,像初始化ip、创建用户等。

    实现功能

    1、初始化ip
    2、初始化主机名
    3、初始化用户
    4、自动扩展磁盘 
     

    首先, 下载你所需要的安装包, 新版本为0.9.11,之后安装并在配置文件中填入最适合你的选项. 基于当前 cloudbase-init 安装包的安装方式, 他将会在 C:Program Files or C:Program Files (x86) as Cloudbase SolutionsCloudbase-Init目录中. 其中目录结构如下所示:

    • bin - 可执行文件和其他二进制文件.
    • conf - 配置文件
    • log - cloudbase-init相关日志.
    • LocalScripts - 用户提供的脚本

    安装完成之后, cloudbase-init 作为一个使用服务和通过插件去执行的两个步骤的服务, 通过这种方式去支持所有的配置. 根据平台不同的插件可能需要重启.

     配置文件解析:

    [DEFAULT]
    # 创建什么用户以及用户属于什么组.
    username=Admin          #一般都是改为Administrator
    groups=Administrators
    inject_user_password=true  # 从元数据中获取密码 (非随机).
    # 那个设备是可能的配置驱动 (元数据).
    config_drive_raw_hhd=true
    config_drive_cdrom=true
    # 与ubuntu中功能相同的tar命令默认路径.
    bsdtar_path=C:Program Files (x86)Cloudbase SolutionsCloudbase-Initinsdtar.exe
    # 日志等级.
    verbose=true
    debug=true
    # 日志存放路径.
    logdir=C:Program Files (x86)Cloudbase SolutionsCloudbase-Initlog
    logfile=cloudbase-init-unattend.log
    default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN
    logging_serial_port_settings=
    # 启用最大传输单元和时间同步服务.
    mtu_use_dhcp_config=true
    ntp_use_dhcp_config=true
    # 存放用户用于执行的脚本的路径.
    local_scripts_path=C:Program Files (x86)Cloudbase SolutionsCloudbase-InitLocalScripts
    # 服务将会检测以下驱动直到某个能够成功获取元数据.
    metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService, #可以开启ConfigDrive和httpservice(Openstack)
                      cloudbaseinit.metadata.services.httpservice.HttpService,
                      cloudbaseinit.metadata.services.ec2service.EC2Service,
                      cloudbaseinit.metadata.services.maasservice.MaaSHttpService
    # 需要执行的插件.
    plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,
            cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,
            cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,
            cloudbaseinit.plugins.windows.userdata.UserDataPlugin,
            cloudbaseinit.plugins.windows.setuserpassword.SetUserPasswordPlugin,
            cloudbaseinit.plugins.windows.localscripts.LocalScriptsPlugin
    # 其他配置.
    allow_reboot=false    # allow the service to reboot the system
    stop_service_on_exit=false

    cloudbase-init-unattend.conf配置文件与默认的类似以及它用户系统准备阶段. 他被用于最小化用户交互以及要求有MTU和修改主机名的插件的这种场景, 让镜像准备好进行进一步的初始化.

  • 相关阅读:
    ThinkPHP框架基础知识
    ajax分页练习
    实例练习:购物车
    事件
    ajax基础
    jQuery事件
    jQuery基础
    PHP制作登录注册页面
    iview里tree组件改造
    Vue CLI及其vue.config.js(一)
  • 原文地址:https://www.cnblogs.com/gushiren/p/9561536.html
Copyright © 2020-2023  润新知