开发者社区> 问答> 正文

实例自定义数据1

实例自定义数据为您提供实例自定义启动行为及传入数据的功能。您可以在创建实例(RunInstances)时指定实例自定义数据,为您的实例自定义启动行为。例如,自动获取软件资源包、开启服务、打印日志、安装依赖包、初始化Web服务环境等其他配置实例环境的操作。实例自定义数据主要通过不同类型的自定义脚本实现。实例自定义数据也可以作为普通数据,将某些信息传入实例中,您可以在实例中引用这些数据。

使用说明

配置实例自定义数据时,您需要注意:

  • 只支持专有网络VPC类型实例。

  • 实例如果采用了 已停售的实例规格,必须是I/O优化实例。其他 实例规格族 无I/O优化限制。

  • 实例自定义数据需要Base64编码后传入,且编码前的自定义数据不能超过16 KB。

  • 实例必须使用系统镜像或继承于系统镜像的自定义镜像,且只支持下列操作系统:

    Windows实例Linux实例
    Windows Server 2016 64位 Windows Server 2012 64位 Windows Server 2008 64位CentOS Ubuntu SUSE Linux Enterprise OpenSUSE Debian Aliyun Linux

运行频率

实例开始运行时(Running),系统首先以管理员或者root权限运行实例自定义数据,其次运行初始化或 /etc/init信息。

修改实例自定义数据后,是否要重新运行修改过的自定义数据取决于脚本类型和模块类型。例如:

  • 如果您通过Shell脚本配置自定义数据,如 User-Data 脚本,我们不会运行修改后的自定义数据。

  • 如果自定义数据配置的是类似Byobu、Set Hostname和Set Passwords之类的模块,我们不会运行修改后的自定义数据。

  • 如果自定义数据配置的是类似bootcmd、update_etc_hosts和yum_add_repo之类的模块,我们会运行修改后的自定义数据。

    更多详情,请参见cloud-init文档 Modules,并关注模块频率(Module Frequency)。

设置自定义数据

假设您的自定义数据开发环境为Windows计算机,使用 Upstart Job 脚本为您的CentOS实例设置自定义数据。

  1. 使用编辑器创建文本文件,例如Notepad++。
  2. 在创建的文本文件中编辑自定义数据的相关脚本。
    说明
    第一行必须满足实例自定义脚本的格式要求,比如 #!/bin/sh#cloud-config#upstart-job[bat] 和 [powershell]。更多详情,请参见 Linux实例自定义数据 和 Windows实例自定义数据
  3. 调试脚本文件以确认内容正确。
  4. (可选)如果您制作的是 Gzip 压缩脚本 文件,您需要压缩脚本文件为 .gz 格式。
  5. (可选)如果您制作的是 Include文件 文件或 Gzip 压缩脚本 文件,上传脚本文件到可用的存储服务中并获取链接,并设置链接有效期为您的期望值。

    我们推荐您使用阿里云对象存储OSS制作链接,更多详情,请参见 OSS 上传文件 和 设置生命周期

  6. 登录 ECS管理控制台
  7. 参阅 步骤 2:创建ECS实例 创建一台Linux实例。
    说明
    这台实例的网络类型必须是 VPC,并需要选择符合规范的 镜像已停售的实例规格 必须选择I/O优化实例,其他 实例规格族无 I/O 优化限制。

    创建实例时,选择 使用文本形式 输入 自定义数据。若您的自定义数据已经过Base64加密,勾选 输入已采用 base64 编码



  8. 等待创建实例过程。
  9. 实例启动后,参考 连接实例概述 远程连接到目标实例。
  10. 根据您指定的自定义数据查看运行结果,如果出现故障您需要注意查看相关日志文件。以下为在CentOS实例上使用Upstart Job脚本配置自定义数据的输出示例:


    从上面的结果中您可以看到,在实例的 /etc/init 文件夹中生成了一个 part-001.conf 启动任务文件。

相关API:RunInstances + 参数 UserData

查看自定义数据

您可以通过 100.100.100.200 服务器查看实例自定义数据。

  1. 远程连接实例。
  2. 在实例内部运行:

相关API:DescribeUserdata

修改自定义数据

修改自定义数据之前,您必须停止实例。对于按量付费 VPC 类型实例,若您修改自定义数据后需要立即启动实例时,建议您关闭停机不收费选项。

  1. 登录 ECS管理控制台
  2. 在左侧导航栏中,单击 实例
  3. 选择地域。
  4. 选中需要修改自定义数据的实例,并在 操作 列中,单击 设置用户数据
  5. 在弹窗中填入信息后单击 确定


说明
修改自定义数据后,是否要重新运行修改过的自定义数据取决于脚本类型和模块类型。

相关API:ModifyInstanceAttribute + 参数 UserData

Modules

展开
收起
chenchuan 2018-08-22 06:34:44 1325 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
《用管控策略设定多账号组织全局访问边界》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载