windows-本地虚拟机使用init-windows

window 安装Cloudbase-Init

window 下的初始化由Cloudbase-Init 提供, 其官方地址为 https://cloudbase.it/ 。在虚拟机中安装该软件,过程十分简单。

官方文档: https://cloudbase-init.readthedocs.io/en/latest/plugins.html

配置

软件的配置文件为

 C:\Program Files (x86)\Cloudbase Solutions\Cloudbase-Ini\cloudbase-init.conf

metadata_services 选项设置元数据获取服务,ConfigDriveService 表示openstack 本地模式

metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,

plugins 选项设置需要执行的插件
SetHostNamePlugin 更改主机名
etUserPasswordPlugin 更改主机密码
ExtendVolumesPlugin 自动扩展磁盘空间(每次重启均执行)

# What plugins to execute.
plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,
        cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin
        cloudbaseinit.plugins.windows.setuserpassword.SetUserPasswordPlugin
        cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin

此外还需要设置允许重启,允许使用cdrom

allow_reboot = true

元数据制作

ConfigDriveService 会识别lable 为 config-2 的光盘
并读取其中 openstack/latest/meta_data.json 文件的数据

穿件seed 文件夹 ,并写入数据

$ vim seed/openstack/latest/meta_data.json

{
    "hostname": "test5",
    "meta": {
        "admin_pass": "6"
    },
    "uuid": "local-2"
}


  • hostname: 设置的主机名称
  • admin_pass: 设置的用户密码
  • uuid :即在uuid 不同时,才会执行初始化工作,故每次需要更改

使用genisoimage 指令封装seed目录下的数据为seed.iso

genisoimage -output seed.iso -volid config-2 -joliet -rock seed/

启动虚拟机

挂载制作好的磁盘为

<disk type='file' device='cdrom'>
    <driver name='qemu' type='raw' cache='none'/>
    <source file='./seed.iso'/>
    <target dev='hdc' bus='ide'/>
</disk>

参考window
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Using+ConfigDrive+for+Metadata,+Userdata+and+Password#UsingConfigDriveforMetadata,UserdataandPassword-Contentofmeta_data.json(jsonencoded):
openstack 中使用metadata 的方式
https://docs.openstack.org/nova/latest/user/config-drive.html
http://www.voidcn.com/article/p-pqsebuws-pk.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容