实例自定义数据
实例自定义数据是指用户给虚拟机实例上传的脚本、指令或配置文件等数据,用于管理实例的启动行为或对实例进行一些基础配置,如:完成自动化运维脚本、安装/卸载/更新软件或补丁、设置用户名及密码等。
注意实例必须使用公共镜像或基于公共镜像创建的自定义镜像,或者确保自定义镜像中已经安装cloud-init相关组件。
创建虚拟机设置自定义数据
- 登录ECX控制台。
- 单击左侧【边缘虚拟机>实例】导航栏。
- 对于普通线上用户,点击【新建实例】;对于线下用户,点击【新建实例>指定区域开通】。
- 在“高级选项”中设置实例自定义数据,虚拟机创建完成启动后,即可生效,其中目前支持的自定义数据类型及格式要求,详见自定义数据格式。
已有虚拟机设置自定义数据
- 登录ECX控制台。
- 单击左侧【边缘虚拟机>实例】导航栏。
- 在虚拟机列表找到目标实例,操作列依次点击【更多>实例管理>自定义数据】,编辑完成后点击【确认】,其中目前支持的自定义数据类型及格式要求,详见自定义数据格式。
- 找到目标实例,重装虚拟机操作系统,即可为已有虚拟机设置自定义数据。
注意为已有虚拟机设置实例自定义数据需重装后才可生效。
查看实例自定义数据
- 登录ECX控制台。
- 单击左侧【边缘虚拟机>实例】导航栏。
- 在虚拟机列表找到目标实例,操作列依次点击【更多>实例管理>自定义数据】,即可查看该实例设置的自定义数据。
修改实例自定义数据
- 登录ECX控制台。
- 单击左侧【边缘虚拟机>实例】导航栏。
- 在虚拟机列表找到目标实例,操作列依次点击【更多>实例管理>自定义数据】,编辑完成后点击【确认】。
- 找到目标实例,重装虚拟机操作系统,修改后的自定义数据即可生效。
注意修改实例自定义数据需重装虚拟机才可生效。
自定义数据格式
- Linux虚拟机仅支持Shell脚本或cloud-config脚本。
- Windows虚拟机仅支持bat脚本或PowerShell脚本。
- 目前最大支持32KB。
User-Data脚本
User-Data脚本传入Linux实例后直接作为Shell脚本执行,且仅在实例首次启动时运行一次,即创建成功、重装成功首次启动运行一次,重启不再运行。
- 以#!开头。
脚本示例:
#!/bin/sh
echo "Hello World. The time now is $(date -R)!" | tee /root/userdata.txt
脚本效果为在实例首次启动时,在userdata.txt文件中写入系统时间。
cloud-config脚本
创建ECX虚拟机时,可以通过cloud-config脚本设置实例自定义数据,自定义指定需要执行的cloud-init功能模块及对应任务。
cloud-config的模块设置里提供两种运行频率设置,其中once-per-instance仅在实例首次启动时运行,always在实例每次启动都运行。
- 首行为#cloud-config。
- 起始位置不能有空格。
- 遵循YAML语法。
脚本示例:
#cloud-config
bootcmd:- echo "Hello World. The time now is $(date -R)!" | tee /root/cloudconfigdata.txt
脚本效果为实例每次启动时,在cloudconfigdata.txt文件中写入系统时间。
bat脚本
bat脚本仅在实例首次启动运行一次,重启不会再执行。
- 首行为[bat]。
- 起始位置不能有空格。
- 只能输入半角字符。
- 写入数据的路径不能为C:\Users目录,否则自定义数据会执行失败。
脚本示例:
[bat]
echo "bat data test" > C:\batdata.txt
脚本效果为实例首次启动时向batdata.txt写入“bat data test”。
PowerShell脚本
PowerShell脚本仅在实例首次启动运行一次,重启不会再执行。
- 首行为[powershell]。
- 起始位置不能有空格。
- 只能输入半角字符。
- 写入数据的路径不能为C:\Users目录,否则自定义数据会执行失败。
脚本示例:
[powershell]
echo "powershell data test" > C:\powershelldata.txt
脚本效果为实例首次启动时向powershelldata.txt写入“powershell data test”。