使用场景
当您有如下需求时,可以考虑使用用户数据注入功能来配置弹性云主机:
•需要通过脚本简化弹性云主机配置
•通过脚本初始化系统
•已有脚本,在创建弹性云主机的时候一并上传到服务器
•其他可以使用脚本完成的功能
文件注入方式同样可以实现上述功能,推荐您优先使用用户数据注入功能。
使用限制
Linux:
•用于创建弹性云主机的镜像安装了Cloud-init组件。
•用户数据大小限制:小于等于32KB。
•如果通过文本方式上传用户数据,数据只能包含ASCII码字符;如果通过文件方式上传用户数据,可以包含任意字符,同时,要求文件大小小于等于32KB。
•必须是公共镜像,或继承于公共镜像的私有镜像,或自行安装了Cloud-init组件的私有镜像。
•必须满足相应Linux弹性云主机自定义脚本类型的格式要求。
•使用的VPC网络必须开启DHCP,安全组出方向规则保证80端口开放。
•选择“密码”登录方式时,不支持用户数据注入功能。
Windows
•用于创建弹性云主机的镜像安装了Cloudbase-init组件。
•用户数据大小限制:小于等于32KB。
•如果通过文本方式上传用户数据,数据只能包含ASCII码字符;如果通过文件方式上传用户数据,可以包含任意字符。
•必须是公共镜像,或继承于公共镜像的私有镜像,或自行安装了Cloudbase-init组件的私有镜像。
•使用 VPC网络必须开启DHCP,安全组出方向规则保证80端口开放。
使用方法
1.根据实际需要写用户数据脚本,脚本格式必须符合用户数据脚本规范,详细规范请参考Cloud-init/Cloudbase-init官网:
https://cloudinit.readthedocs.io/en/latest/
https://cloudbase-init.readthedocs.io/en/latest/
2.创建弹性云主机时,需将用户数据脚本内容粘贴到“高级配置 > 现在配置 > 用户数据注入”的文本框,或选择用户数据文件上传。
3.系统创建弹性云主机,弹性云主机启动后自动执行Cloud-init或Cloudbase-init组件,读取用户数据脚本。
关于Linux云主机的用户数据脚本
Linux弹性云主机的自定义用户数据脚本(简称“脚本”)采用开源的cloud-init架构实现,该架构以云主机的元数据为数据来源,对弹性云主机进行各项自动化配置。自定义脚本类型兼容开源cloud-init,详情请参考cloud-init开源说明:http://cloudinit.readthedocs.io/en/latest/topics/format.html
•脚本的执行时间:弹性云主机的状态变为“running”之后,执行文件/etc/init之前。
说明
脚本默认以root用户权限执行。
•脚本类型:包括“User-Data Script”和“Cloud-Config Data”。
Linux云主机脚本类型介绍 | ||
- | User-Data Script | Cloud-Config Data |
描述 | 以脚本作为自定义配置的手段,如shell和python脚本。 | cloud-init中预定义的对云主机部分服务进行配置的手段,如yum源、SSH 密钥。 |
格式 | 首行必须是“#!”(如“#!/bin/bash和#!/usr/bin/env python”)。 首次启动时,将在rc.local-like级别上执行,rc.local-like意味着“在启动序列中非常靠后”。 | 首行必须是“#cloud-config”,且前面不能有空格。 |
限制 | 在采用Base64编码前,脚本内容(包括首行在内)不能超过32KB。 | 在采用Base64编码前,脚本内容(包括首行在内)不能超过32KB。 |
频率 | 仅在首次启动弹性云主机时执行一次。 | 配置的服务不同,执行频率也会不同。 |
•如何查看注入Linux弹性云主机的自定义用户数据?
1.登录弹性云主机。
2.执行以下命令,以root用户权限查看自定义用户数据。
curl http://169.254.169.254/openstack/latest/user_data
•脚本使用示例:
该示例介绍如何以不同格式输入Linux弹性云主机的脚本,并查看脚本的运行结果。
示例一:脚本类型为User-Data Script
创建弹性云主机时,选择“文本”形式并输入自定义用户数据脚本,脚本如下:
#!/bin/bash
echo "Hello, the time is now $(date -R)" | tee /root/output.txt
创建成功后,连接并启动弹性云主机,执行命令cat [file],查看脚本的运行结果。
[root@XXXXXXXX ~]# cat /root/output.txt
Hello, the time is now Mon, 16 Jul 2016 16:03:18+0800
示例二:脚本类型为Cloud-Config Data
创建弹性云主机时,选择“文本”形式并输入自定义用户数据脚本,脚本如下:
#cloud-config
bootcmd:
- echo 192.168.1.130 us.archive.ubuntu.com >> /etc/hosts
创建成功后,连接并启动弹性云主机,执行命令cat /etc/hosts查看脚本的运行结果。
关于Windows弹性云主机的用户数据脚本
Windows弹性云主机的自定义用户数据脚本(简称“脚本”)采用开源的cloudbase-init架构实现,该架构以弹性云主机的元数据为数据来源,对弹性云主机进行各项自动化配置,为Windows弹性云主机提供执行初始化脚本的能力。自定义脚本类型兼容开源cloudbase-init,详情请参考cloudbase-init开源说明:https://cloudbase-init.readthedocs.io/en/latest/userdata.html。
•脚本类型:包括“Batch批处理程序”和“PowerShell脚本”。
Windows云主机脚本类型介绍 | ||
- | Batch批处理程序 | PowerShell脚本 |
格式 | 以“rem cmd”开头且作为首行,且前面不能有空格。 | 以“#ps1”开头且作为首行,且前面不能有空格。 |
限制 | 在采用Base64编码前,脚本内容(包括首行在内)不能超过32KB。 | 在采用Base64编码前,脚本内容(包括首行在内)不能超过32KB。 |
•如何查看注入Windows弹性云主机的自定义用户数据?
1.登录弹性云主机。
2.在浏览器栏访问如下地址,查看注入的用户数据。
http://169.254.169.254/openstack/latest/user_data
•脚本使用示例
该示例介绍如何以不同格式输入Windows弹性云主机的脚本,并查看脚本的运行结果。
示例一:Batch批处理程序
创建弹性云主机时,选择“文本”形式并输入自定义用户数据脚本,脚本如下:
rem cmd
echo "Hello, BAT Test" > C:\1111.txt
创建成功后,连接并启动弹性云主机,查看脚本的运行结果:在C:\盘添加了一个名称为 “1111” 的文本文档,如图3所示。
如需查看注入Windows弹性云主机的用户数据,可以在浏览器访问:http://169.254.169.254/openstack/latest/user_data,如下图所示。
示例二:PowerShell脚本
创建弹性云主机时,选择“文本”形式并输入自定义用户数据脚本,脚本如下:
#ps1
echo "Hello, Powershell Test" > C:\aaaa.txt
创建成功后,连接并启动弹性云主机,查看脚本的运行结果:在C:\盘添加了一个名称为 “aaaa” 的文本文档。
还木有评论哦,快来抢沙发吧~