You need to enable JavaScript to run this app.
导航

设置自定义数据

最近更新时间2024.01.26 15:09:04

首次发布时间2021.12.29 11:18:14

本文介绍如何设置实例自定义数据并验证效果。

限制说明

  • 实例的自定义数据必须为Base64编码形式,且Base64编码前的自定义数据大小不能超过16KB。

    说明

    您可以在云服务器控制台输入未经过Base64编码的自定义数据,控制台会自动进行Base64编码。

  • 如果为已创建的实例更改自定义数据,则该实例必须处于 已停止 状态。具体操作请参考停止实例

操作步骤

步骤一:将自定义数据传入实例

  1. 根据实际需求编写符合规范的脚本,不同操作系统的实例推荐使用的脚本格式不同,具体如下:

    不同格式的脚本示例请参见自定义数据脚本示例

    操作系统
    脚本格式
    LinuxShell
    Cloud Config
    WindowsBatch
    PowerShell
  2. 按以下方式将自定义数据传入实例。

    • 创建实例时传入自定义数据

      在创建实例页面的 自定义配置 阶段,单击“高级选项”按钮展开相应区域,输入自定义数据。若实例自定义数据已进行Base64编码,请勾选“文本已进行base64格式编码”。按照界面信息逐步操作,完成后续实例创建,具体操作请参见通过向导购买实例
      本文以向指定的userdata_test.txt文件写入指定内容为例,如下图所示。

      • Linux示例:
        alt
      • Windows示例:
        alt

      说明

      配置实例自定义数据后,在首次启动操作系统(包括首次启动实例和更换操作系统)时,运行实例自定义数据。

    • 为已有实例更改自定义数据

      在实例列表页面,单击 已停止 实例“操作”列的“··· > 实例设置 > 更改自定义数据”按钮,在更改自定义数据窗口中输入新的自定义数据。若实例自定义数据已进行Base64编码,请勾选“文本已进行base64格式编码”。单击“确定”按钮完成更改。
      本文以向指定的userdata_test.txt文件写入指定内容为例,如下图所示。

      • Linux示例:
        alt
      • Windows示例:
        alt

      说明

      • 更改自定义数据后,实例状态仍为 已停止 ,您需要手动启动实例

      • 更改自定义数据后,启动实例时新的自定义数据是否运行,受脚本类型和模块类型的影响,如:

        • Shell脚本:不会重新运行,仅在操作系统首次启动时运行。
        • Cloud Config脚本:若配置对象为Byobu、Set Passwords等模块,不会重新运行,仅在操作系统首次启动时运行。
        • Cloud Config脚本:若配置对象为Update Etc Hosts模块,实例每次启动时都会重新运行。

        更多模块类型的特点,请参考Modules中的各模块及其模块频率(Module Frequency)。

      • 如果您已经设置过自定义数据,在更改自定义数据时,自定义数据区域会显示上次输入的文本内容,文本格式默认为非Base64编码格式。

步骤二:验证传入实例的内容和运行结果

Linux实例

  1. 登录Linux实例

  2. 通过实例元数据查看已传入的内容。
    执行以下命令,以root用户权限查看实例自定义数据,若回显与步骤一中传入的内容一致,则表明自定义数据已成功传入实例。

    curl http://100.96.0.96/latest/user_data
    

    alt

  3. 执行以下命令,查看实例自定义数据运行结果。
    运行结果与自定义数据内容有关,本文以向指定文件userdata_test.txt写入指定内容为例。

    cat userdata_test.txt
    

    alt

Windows实例

  1. 登录Windows实例

  2. 通过实例元数据查看已传入的内容。
    执行以下命令,以root用户权限查看实例自定义数据,若回显与步骤一中传入的内容一致,则表明自定义数据已成功传入实例。

    Invoke-RestMethod http://100.96.0.96/latest/user_data
    

    alt

  3. 查看运行结果。
    运行结果与自定义数据内容有关,本文以在C盘创建userdata_test.txt为例,进入C盘查看运行结果如下图所示。
    alt

自定义数据脚本示例

推荐使用如下脚本格式设置自定义数据。更多脚本格式,请参考cloudbase-init官方文档

Shell

#!开头,如#!/bin/bash,起始位置不能有空格。示例脚本如下:

#!/bin/bash
echo "Hello World !" > /root/userdata_test.txt

Cloud Config

#cloud-config开头,且起始位置不能有空格。示例脚本如下:

#cloud-config
bootcmd:
- echo "Hello World !" > /root/userdata_test.txt

Batch

rem cmd开头,且起始位置不能有空格。示例脚本如下:

rem cmd
echo "Hello World !" > C:\userdata_test.txt

PowerShell

#ps1开头,且起始位置不能有空格。示例脚本如下:

#ps1
echo "Hello World !" > C:\userdata_test.txt

相关文档