云主机自定义数据为您提供主机自定义启动行为及传入数据的功能,您可以在创建云主机的时候指定云主机的自定义数据,为您的云主机自定义启动行为。云主机自定义数据详细包括两方面的内容:
- 传入自定义脚本,作为user-data用于云主机启动。
- 传入普通数据,将特定信息传入主机中,后续客户可以引用这些数据。
操作场景
您可以在云主机创建完成后首先做一些环境的配置或者应用的初始化,例如在云主机创建完成后安装特定软件,启动特定的服务。同时您会更期望这一些操作能够自动化完成,可以专注于对初始化脚本的管理而不是对虚拟机的管理。移动云提供云主机数据注入功能完成这些操作:在创建移动云虚拟主机时,可通过云主机数据注入功能,按指定的格式传入用户的自定义脚本,完成系统更新,软件部署,用户创建,服务启停等等脚本定义的个性化功能。该脚本会在云主机初始化完成后运行,并且仅会运行一次,在云主机重启时将不会影响配置。
前提条件
Linux云主机自定义数据功能说明:
- 必须是公共镜像,或继承于公共镜像的私有镜像。
- 用户的数据大小限制:小于等于16KB。
- 上传您的数据,数据只能包含ASCII码字符,不支持中文字符。
- 支持user-data(shell脚本)模式。
Windows云主机数据注入功能说明:
- 必须是公共镜像,或继承于公共镜像的私有镜像。
- 用户的数据大小限制:小于等于16KB。
- 上传用户的数据,数据只能包含ASCII码字符,不支持中文字符。
- Windows云主机支持批处理脚本模式的云主机数据注入。
操作步骤
- 进入云主机订购页面,选择【高级选项】>【自定义数据】。
- 可以选择【以文本形式】或【以文件形式】完成自定义数据注入。
3. 录入自定义数据,可参考下面Linux自定义数据格式、Windows自定义数据格式进行编写。
Linux自定义数据格式
Linux实例自定义数据功能采用开源的cloud-init架构。通过控制台或API等方式将实例自定义数据传入实例后,可以通过实例元数据查看内容,cloud-init也以实例元数据为来源自动化配置Linux实例。在实例启动时系统首先以管理员或者root权限运行实例自定义数据。
User-data脚本
user-data模式的脚本,以云主机元数据为数据来源,自动化配置Linux云主机的属性。User-data 脚本具有以下特点:
- 首行以
#!开头。 - 仅在实例首次启动时运行一次。
User-data可以是一个Shell脚本。仅在创建云主机启动时执行一次。以下为User-data脚本的示例:
#!/bin/bash
echo "one test about user data" >>userdata
chmod 777 userdata
useradd -m cmsscloud
echo -e 'cmsscloud\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers
云主机创建完成之后,登录云主机,执行如下命令,查看脚本执行结果,可以查看写入生成的userdata文件
cd /

执行如下命令,可以切换到cmsscloud用户
su cmsscloud

Windows自定义数据格式
Windows云主机目前仅支持一种模式的脚本,即bat批处理脚本。
脚本示例:
rem cmd
echo 12345678 >> C:\111.txt
云主机创建完成之后,登入云主机,查看脚本执行结果。
