ECS实例自定义数据使用说明 – 阿里云百科
实例自定义数据,是阿里云 ECS 为您提供的一种自定义实例启动行为及传入数据的功能,该功能兼容 Windows 实例及 Linux 实例,主要有两种用途:
本文介绍如何自定义数据,包括Linux和Windows的自定义脚本和使用示例及如何查看自定义数据,下面开始教程:
自定义数据脚本:包括Linux和Windows
Linux自定义脚本
阿里云的 Linux 实例自定义脚本采用开源的 cloud-init 架构实现,该架构以 实例元数据 为数据来源,对 Linux 实例进行各项自动化配置。自定义脚本类型兼容开源 cloud-init。详情请参考 cloud-init 开源说明:http://cloudinit.readthedocs.io/en/latest/topics/format.html
Linux 实例自定义脚本说明
实例自定义脚本执行时间节点:实例 running 后,/etc/init
执行前。
Linux 实例自定义脚本默认将以 root 用户权限执行。
Linux 实例自定义脚本类型
User-Data Script
#!
,如 #!/bin/sh
。
1
2
|
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/output10.txt
|
Cloud Config Data
#cloud-config
。
1
2
3
4
5
|
#cloud-config
apt:
primary:
- arches: [default]
uri: http://us.archive.ubuntu.com/ubuntu/
|
Include
#include
。
1
2
|
#include
http://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/cloudconfig
|
阿里云2折云服务器优惠
1核1G:330元/年,660元/2年,800元/3年;
1核2G:660元/年,960元/2年,1320元/3年;
2核4G:825元/年,1260元/2年,1650元/3年
Gzip 压缩格式
#include
的 URL 的方式传入实例自定义脚本。
1
2
|
#include
http://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/config.gz
|
查看 Linux 实例自定义数据
要查看某个 Linux 实例自定义数据,您可在实例中执行如下命令:
1
|
curl http://100.100.100.200/latest/user-data
|
Windows 实例自定义脚本
阿里云的 Windows 实例自定义脚本是阿里云自主研发的一套为 Windows 实例提供执行初始化脚本的能力。
Windows 实例自定义脚本有 2 种类型,包括:
[bat]
开头且作为首行。在 Base64 编码前,所有脚本内容必须小于 16 KB。[powershell]
开头且作为首行。在 Base64 编码前,所有脚本内容必须小于 16 KB。查看 Windows 实例自定义数据
要查看某个 Windows 实例自定义数据,您可以在实例中执行如下 PowerShell 命令:
1
|
Invoke-RestMethod http://100.100.100.200/latest/user-data/
|
附 1:Linux 实例自定义脚本使用示例
假设您在创建一个 Linux 实例,需要输入实例自定义脚本。
实例的信息如下:
以下示例将说明如何以不同的格式输入实例自定义脚本,并查看脚本的执行结果。
User-Data Script
在 自定义数据 输入框中输入如下脚本。注意:必须以 #!
开头。
1
2
|
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt
|
实例自定义数据文本
实例创建完成后,连接并启动实例,执行命令 cat
,查看脚本的执行结果。
1
2
|
[root@aliyunbaike ~]# cat output.txt
Hello World. The time is now Mon, 24 Jul 13:03:19 +0800!
|
Cloud Config Data
在 自定义数据 输入框中输入如下内容。注意:必须以 #cloud-config
作为第一行,且前面不应有空格。
1
2
3
|
#cloud-config
bootcmd:
- echo 192.168.1.130 us.archive.ubuntu.com >> /etc/hosts
|
实例创建完成后,连接并启动实例,查看运行结果。
Upstart Job
Upstart Job 类型的实例自定义脚本会将您的脚本或服务放到 /etc/init
目录下,成为每次开机都会启动的初始化脚本。
1、在 自定义数据 输入框中输入如下内容。注意:必须以 #upstart-job 作为第一行,且前面不应有空格。
1
2
3
|
#upstart-job
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt
|
2、实例创建完成后,连接并启动实例,查看执行结果。
执行运行结果
从上面的结果中您可以看到,在实例的 /etc/init
文件夹中生成了一个 part-001.conf 启动任务文件。
Include
您可以将上述各种不同类型的实例自定义脚本以文件的形式存在一个链接中,再将这个链接作为 自定义数据 的文本,从而更好地管理和维护脚本,同时也可以减少对于脚本大小的限制。
1、在 自定义数据 输入框中输入如下内容。注意:必须以#include
作为第一行,且前面不应有空格。
1
2
|
#include
http://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/UserData/myscript.sh
|
2、实例创建完成后,连接并启动实例,查看执行结果。
注意:
必须以 #include 作为第一行,且前面不要有空格。
每一行为一个完整的 URL,该 URL 为一个脚本文件的存放地址,存放着您需要进行各项配置的脚本。您可以参考 Linux 实例自定义脚本类型“Include”中的 URL 文件制作示例 制作脚本文件并获取 URL。
每个脚本文件的大小不能超过 16 KB。
必须确保实例可以访问所有的 URL。
Gzip
当 include URL 中的脚本文件的大小超过了 16 KB,您可以使用 gzip 命令压缩脚本文件。
1、在 自定义数据 输入框中输入如下内容。注意:必须以 #include
作为第一行,且前面不应有空格。
1
2
|
#include
http://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/UserData/myscript.sh.gz
|
2、实例创建完成后,连接并启动实例,查看执行结果。
注意:其中 URL 链接到一个压缩后的脚本文件,如本示例中的“myscript.sh.gz”。
Linux 实例自定义脚本类型“Include”文件中的 URL 文件制作示例
1、创建文本文件,在 Windows 上使用 Notepad++ 打开。
2、在 Notepad++ 中编辑文件内容,第一行必须满足实例自定义脚本的格式要求,比如:#!/bin/sh
、#cloud-config
、#upstart-job
。
3、保存文本文件,并上传到 OSS 的 Object 中。
4、获取 OSS Object 的 URL 访问地址。
注意:
每个文件只能是一种实例自定义脚本格式。
以上只是示例,您可以根据需要自行配置文件 URL 的获取方式。
OSS Object 的文件 URL 链接存在有效期限制。
Windows 实例自定义脚本使用示例
假设您在创建一个 Windows 实例,需要输入实例自定义脚本。
实例的信息如下:
以下示例将说明如何以不同的格式输入实例自定义脚本,并查看脚本的执行结果。
Bat 脚本
1、在 自定义数据 输入框中输入如下内容。注意:必须以 [bat]
作为第一行,且前面不应有空格。
1
2
|
[bat]
echo "bat test" > c:1.txt
|
2、实例创建完成后,连接实例查看执行结果:在 C: 盘添加了一个名称为 “1” 的文本文件。
3、连接实例后,您可以在 Windows PowerShell 里使用如下命令查看输入的实例自定义脚本。
1
|
Invoke-RestMethod http://100.100.100.200/latest/user-data/
|
Windows PowerShell
1、在 自定义数据 输入框中输入如下内容。注意:必须以 [powershell]
作为第一行,且前面不应有空格。
1
2
|
[powershell]
write-output "Powershell Test" | Out-File C:2.txt
|
2、连接实例后,您可以在 Windows PowerShell 里使用如下命令查看输入的实例自定义脚本。
1
|
Invoke-RestMethod http://100.100.100.200/latest/user-data/
|