翻译:cloudbase-init使用方法

屠和洽
2023-12-01

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

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

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

系统准备

系统准备(Sysprep)工具准备安装Windows以进行复制,审核和客户交付。 复制(也称为镜像)使您能够捕获可在整个组织中重复使用的自定义Windows映像。 Sysprep阶段使用“Unattend.xml”,这意味着使用“cloudbase-init-unattend.conf”配置文件运行服务

配置文件

在已选择的安装路径下的conf目录存在两个配置文件分别叫: cloudbase-init.conf 和 cloudbase-init-unattend.conf. 可以有很多各种各样的参数用于配置你想要运行的服务和插件,以及定制用户配置.

模版配置文件解析:

[DEFAULT]
# 创建什么用户以及用户属于什么组.
username=Admin
groups=Administrators
inject_user_password=true  # 从元数据中获取密码 (非随机).
# 那个设备是可能的配置驱动 (元数据).
config_drive_raw_hhd=true
config_drive_cdrom=true
# 与ubuntu中功能相同的tar命令默认路径.
bsdtar_path=C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe
# 日志等级.
verbose=true
debug=true
# 日志存放路径.
logdir=C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Init\log\
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 Solutions\Cloudbase-Init\LocalScripts\
# 服务将会检测以下驱动直到某个能够成功获取元数据.
metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,
                  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
# 其他配置.
allow_reboot=false    # allow the service to reboot the system
stop_service_on_exit=false

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

很多已经解释过的选项可以在 服务, 插件用户数据 文档中更详细的找到.

脚本执行

Cloudbase-init 能够执行用户提供的脚本, 通常放在默认路径 C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Init\LocalScripts, through a specific plugin 中执行,根据所使用的平台,这些脚本可以是MZPEs、PowerShell、Python、Batch或者Bash脚本. 用户数据插件也能够执行各种各样的脚本.

根据返回码, 你可以进行重启或者重启机器之后再执行命令:

1001 - 重启但启动后不再执行命令
1002 - 不重启,等下一次重启再执行命令
1003 - 重启并在启动时执行命令

个人理解:只要通过openstack的nova metadata就能够实现虚拟机创建时的修改密码功能,也可以通过修改cloudbase-init来实现虚拟机创建后的密码修改(需要重启虚拟机)

摘录来自:
http://cloudbase-init.readthedocs.io/en/latest/tutorial.html#execution

 类似资料: