虚拟机自定义用户数据篇

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 任务会等待直到超时。

操作步骤

  1. 准备所需实现功能的 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
    上述示例实现以下功能:
    1. 新建虚拟机时,创建用户 test,使用 ssh-key。
    2. 开机写入文件/etc/hosts,创建/tmp/temp目录,并创建文件写入内容。
    3. 设置 hostname,开启 root 用户,允许 ssh 密码登录,修改 root 密码。
    4. 执行echo ls -l /命令。
  2. 在导航栏中,选择资源清单
  3. 在资源清单中,右键单击集群、主机或镜像,然后点击新建虚拟机
  4. 新建虚拟机弹窗中,选择高级设置 > 常规选项
  5. User Data输入框中粘贴脚本。
  6. 完成虚拟机新建流程,即可导入 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 任务会等待直到超时。

操作步骤

  1. 准备所需实现功能的 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 盘下创建b64b64_1gzip三个文件。

  2. 在导航栏中,选择资源清单
  3. 在资源清单中,右键单击集群、主机或镜像,然后点击新建虚拟机
  4. 新建虚拟机弹窗中,选择高级设置 > 常规选项
  5. User Data输入框中粘贴脚本。
  6. 完成虚拟机新建流程,即可导入 User Data。