虚拟机自定义用户数据篇
ZStack Cube 虚拟化版 支持虚拟机导入 User Data,即用户自定义数据,通过输入自定义的参数或脚本,对虚拟机做一些定制化配置或完成特定任务。
Linux 虚拟机导入 User Data
前提条件
- 导入 User Data 前,确保虚拟机镜像已安装 cloud-init,推荐版本:0.7.9、17.1、19.4 以及 19.4 以后版本。
- 若通过 User Data 方式设置主机名和 SSH 登录密码,请勿在平台上重复设置主机名和密码,以避免冲突。
- 若使用已安装 cloud-init 的虚拟机镜像新建 Linux 虚拟机,必须导入 User Data,否则 cloud-init 任务会等待直到超时。
操作步骤
-
准备所需实现功能的 User Data 脚本。
脚本示例:
#cloud-config users: - name: test shell: /bin/bash groups: users sudo: ['ALL=(ALL) NOPASSWD:ALL'] ssh-authorized-keys: - ssh-rsa AAAAB3NzaC1LXCJfjroD1lT root@10-0-0-18 bootcmd: - mkdir /tmp/temp write_files: - path: /tmp/Cloud_config content: | Hello,world! permissions: '0755' fqdn: Perf-test disable_root: false ssh_pwauth: yes chpasswd: list: | root:word expire: False runcmd: - echo ls -l / >/root/list.sh上述示例实现以下功能:- 新建虚拟机时,创建用户 test,使用 ssh-key。
- 开机写入文件/etc/hosts,创建/tmp/temp目录,并创建文件写入内容。
- 设置 hostname,开启 root 用户,允许 ssh 密码登录,修改 root 密码。
- 执行
echo ls -l /命令。
- 在导航栏中,选择资源清单。
- 在资源清单中,右键单击集群、主机或镜像,然后点击新建虚拟机。
- 在新建虚拟机弹窗中,选择。
- 在User Data输入框中粘贴脚本。
- 完成虚拟机新建流程,即可导入 User Data。
Windows 虚拟机导入 User Data
前提条件
- 导入 User Data 前,确保虚拟机镜像已安装 Cloudbase-init,推荐版本:0.9.11。有关 Cloudbase-init 的更多信息,请参阅 Cloudbase官方文档。
- 若通过 User Data 方式设置主机名和 SSH 登录密码,请勿在平台上重复设置主机名和密码,以避免冲突。
- 若使用已安装 Cloudbase-init 的虚拟机镜像新建 Windows 虚拟机,必须导入 User Data,否则 Cloudbase-init 任务会等待直到超时。
操作步骤
-
准备所需实现功能的 User Data 脚本。
脚本示例:
#cloud-config write_files: - encoding: b64 content: NDI= path: C:\b64 permissions: '0644' - encoding: base64 content: NDI= path: C:\b64_1 permissions: '0644' - encoding: gzip content: !!binary | H4sIAGUfoFQC/zMxAgCIsCQyAgAAAA== path: C:\gzip permissions: '0644'上述示例实现以下功能:在虚拟机启动过程中,在 C 盘下创建b64、b64_1、gzip三个文件。
- 在导航栏中,选择资源清单。
- 在资源清单中,右键单击集群、主机或镜像,然后点击新建虚拟机。
- 在新建虚拟机弹窗中,选择。
- 在User Data输入框中粘贴脚本。
- 完成虚拟机新建流程,即可导入 User Data。
