本文介绍如何设置实例自定义数据并验证效果。
实例的自定义数据必须为Base64编码形式,且Base64编码前的自定义数据大小不能超过16KB。
说明
您可以在云服务器控制台输入未经过Base64编码的自定义数据,控制台会自动进行Base64编码。
如果为已创建的实例更改自定义数据,则该实例必须处于 已停止 状态。具体操作请参考停止实例。
根据实际需求编写符合规范的脚本,不同操作系统的实例推荐使用的脚本格式不同,具体如下:
不同格式的脚本示例请参见自定义数据脚本示例。
操作系统 | 脚本格式 |
---|---|
Linux | Shell Cloud Config |
Windows | Batch PowerShell |
按以下方式将自定义数据传入实例。
创建实例时传入自定义数据
在创建实例页面的 自定义配置 阶段,单击“高级选项”按钮展开相应区域,输入自定义数据。若实例自定义数据已进行Base64编码,请勾选“文本已进行base64格式编码”。按照界面信息逐步操作,完成后续实例创建,具体操作请参见通过向导购买实例。
本文以向指定的userdata_test.txt文件写入指定内容为例,如下图所示。
说明
配置实例自定义数据后,在首次启动操作系统(包括首次启动实例和更换操作系统)时,运行实例自定义数据。
为已有实例更改自定义数据
在实例列表页面,单击 已停止 实例“操作”列的“··· > 实例设置 > 更改自定义数据”按钮,在更改自定义数据窗口中输入新的自定义数据。若实例自定义数据已进行Base64编码,请勾选“文本已进行base64格式编码”。单击“确定”按钮完成更改。
本文以向指定的userdata_test.txt文件写入指定内容为例,如下图所示。
说明
更改自定义数据后,实例状态仍为 已停止 ,您需要手动启动实例。
更改自定义数据后,启动实例时新的自定义数据是否运行,受脚本类型和模块类型的影响,如:
更多模块类型的特点,请参考Modules中的各模块及其模块频率(Module Frequency)。
如果您已经设置过自定义数据,在更改自定义数据时,自定义数据区域会显示上次输入的文本内容,文本格式默认为非Base64编码格式。
通过实例元数据查看已传入的内容。
执行以下命令,以root用户权限查看实例自定义数据,若回显与步骤一中传入的内容一致,则表明自定义数据已成功传入实例。
curl http://100.96.0.96/latest/user_data
执行以下命令,查看实例自定义数据运行结果。
运行结果与自定义数据内容有关,本文以向指定文件userdata_test.txt写入指定内容为例。
cat userdata_test.txt
通过实例元数据查看已传入的内容。
执行以下命令,以root用户权限查看实例自定义数据,若回显与步骤一中传入的内容一致,则表明自定义数据已成功传入实例。
Invoke-RestMethod http://100.96.0.96/latest/user_data
查看运行结果。
运行结果与自定义数据内容有关,本文以在C盘创建userdata_test.txt为例,进入C盘查看运行结果如下图所示。
推荐使用如下脚本格式设置自定义数据。更多脚本格式,请参考cloudbase-init官方文档。
以#!
开头,如#!/bin/bash
,起始位置不能有空格。示例脚本如下:
#!/bin/bash echo "Hello World !" > /root/userdata_test.txt
以#cloud-config
开头,且起始位置不能有空格。示例脚本如下:
#cloud-config bootcmd: - echo "Hello World !" > /root/userdata_test.txt
以rem cmd
开头,且起始位置不能有空格。示例脚本如下:
rem cmd echo "Hello World !" > C:\userdata_test.txt
以#ps1
开头,且起始位置不能有空格。示例脚本如下:
#ps1 echo "Hello World !" > C:\userdata_test.txt