使用场景
当您有如下需求时,可以考虑使用实例自定义数据注入功能来配置弹性云服务器:

需要通过脚本简化弹性云服务器配置
通过脚本初始化系统
已有脚本,在创建弹性云服务器的时候一并上传到服务器
其他可以使用脚本完成的功能
使用限制
Linux:
用于创建弹性云服务器的镜像安装了Cloud-init组件。
实例自定义数据大小限制:小于等于32KB。
如果通过文本方式上传实例自定义数据,数据只能包含ASCII码字符;如果通过文件方式上传实例自定义数据,可以包含任意字符,同时,要求文件大小小于等于32KB。
必须是公共镜像,或继承于公共镜像的私有镜像,或自行安装了Cloud-init组件的私有镜像。
必须满足相应Linux弹性云服务器自定义脚本类型的格式要求。
使用的VPC网络必须开启DHCP,安全组出方向规则保证80端口开放。
选择“密码”登录方式时,不支持实例自定义数据注入功能。
Windows
用于创建弹性云服务器的镜像安装了Cloudbase-init组件。
实例自定义数据大小限制:小于等于32KB。
如果通过文本方式上传实例自定义数据,数据只能包含ASCII码字符;如果通过文件方式上传实例自定义数据,可以包含任意字符,同时,要求文件大小小于等于32KB。
必须是公共镜像,或继承于公共镜像的私有镜像,或自行安装了Cloudbase-init组件的私有镜像。
使用 VPC网络必须开启DHCP,安全组出方向规则保证80端口开放。
使用方法
根据实际需要写User-Data脚本,脚本格式必须符合User-Data脚本,详细规范请参见相关链接。
创建弹性云服务器时,需将实例自定义数据脚本内容粘贴到“选项 > 现在配置 > 实例自定义数据注入”的文本框,或选择实例自定义数据文件上传。
说明:
实例自定义数据注入支持使用文件和文本两种方式:
文本:将实例自定义数据脚本内容粘贴到文本框中。
文件:将实例自定义数据脚本内容保存至文本文件后再将上传。
系统创建弹性云服务器,弹性云服务器启动后自动执行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”。
表1 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弹性云服务器的自定义数据?
登录弹性云服务器。
执行以下命令,以root用户权限查看实例自定义数据。
curl http://169.254.169.254/openstack/latest/user_data
脚本使用示例:
该示例介绍如何以不同格式输入Linux弹性云服务器的脚本,并查看脚本的运行结果。
示例一:脚本类型为User-Data Script
创建弹性云服务器时,选择“文本”形式并输入实例自定义数据脚本,脚本如下:
创建成功后,连接并启动弹性云服务器,执行命令cat [file],查看脚本的运行结果。
示例二:脚本类型为Cloud-Config Data
创建弹性云服务器时,选择“文本”形式并输入实例自定义数据脚本,脚本如下:
创建成功后,连接并启动弹性云服务器,执行命令cat /etc/hosts查看脚本的运行结果。
图2 查看运行结果
关于Windows弹性云服务器的实例自定义数据脚本
Windows弹性云服务器的实例自定义数据脚本(简称“脚本”)采用开源的cloudbase-init架构实现,该架构以弹性云服务器的元数据为数据来源,对弹性云服务器进行各项自动化配置,为Windows弹性云服务器提供执行初始化脚本的能力。自定义脚本类型兼容开源Cloudbase-init,详情请参考Cloudbase-init开源说明:https://cloudbase-init.readthedocs.io/en/latest/userdata.html。
脚本类型:包括“Batch批处理程序”和“PowerShell脚本”。
表2 Windows云服务器脚本类型介绍
-
Batch批处理程序
PowerShell脚本
格式
以“rem cmd”开头且作为首行,且前面不能有空格。
以“#ps1”开头且作为首行,且前面不能有空格。
限制
在采用Base64编码前,脚本内容(包括首行在内)不能超过32KB。
在采用Base64编码前,脚本内容(包括首行在内)不能超过32KB。
如何查看注入Windows弹性云服务器的实例自定义数据?
登录弹性云服务器。
在浏览器栏访问如下地址,查看注入的实例自定义数据。
http://169.254.169.254/openstack/latest/user_data
脚本使用示例
该示例介绍如何以不同格式输入Windows弹性云服务器的脚本,并查看脚本的运行结果。
示例一:Batch批处理程序
创建弹性云服务器时,选择“文本”形式并输入实例自定义数据,脚本如下:
创建成功后,连接并启动弹性云服务器,查看脚本的运行结果:在C:\盘添加了一个名称为 “1111” 的文本文档,如图3所示。
图3 新建文本文档_Batch
如需查看注入Windows弹性云服务器的实例自定义数据,可以在浏览器访问:http://169.254.169.254/openstack/latest/user_data,如图4所示。
图4 查看实例自定义数据_Batch
示例二:PowerShell脚本
创建弹性云服务器时,选择“文本”形式并输入实例自定义数据,脚本如下:
创建成功后,连接并启动弹性云服务器,查看脚本的运行结果:在C:\盘添加了一个名称为 “aaaa” 的文本文档。
图5 新建文本文档_PowerShell
如需查看注入Windows弹性云服务器的实例自定义数据,可以在浏览器访问:http://169.254.169.254/openstack/latest/user_data,如图6所示。
图6 查看实例自定义数据_PowerShell
案例1
该样例介绍如何通过实例自定义数据注入,为Linux弹性云服务器简化云服务器配置。
当您需要设置vim的“语法高亮显示”、“制表符占用4个空格”和“显示行数”属性时,就可以写一个脚本.vimrc,并将其注入到“/root/.vimrc”。在您创建完云服务器时,您的vim配置便完成了。这样做可以大幅提高系统配置的效率,特别是在您一次性创建多台弹性云服务器时。
实例自定义数据注入示例:
案例2
该样例介绍如何通过实例自定义数据注入,设置Linux弹性云服务器密码。
说明:
新密码必须符合密码复杂度要求,密码规则如表3所示。
表3 密码设置规则
参数
规则
密码
密码长度范围为8到26位。
密码至少包含以下4种字符中的3种:
大写字母
小写字母
数字
Windows操作系统云服务器特殊字符:包括“$”、“!”、“@”、“%”、“-”、“_”、“=”、“+”、“[”、“]”、“:”、“.”、“/”、“,”和“?”
Linux操作系统云服务器特殊字符:包括“!”、“@”、“%”、“-”、“_”、“=”、“+”、“[”、“]”、“:”、“.”、“/”、“^”、“,”、“{”、“}”和“?”
密码不能包含用户名或用户名的逆序。
Windows操作系统的云服务器,不能包含用户名中超过两个连续字符的部分。
Windows操作系统的云服务器,不能以“/”为密码首字符。
实例自定义数据注入示例:
使用密文密码(推荐使用):
#!/bin/bash
echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig' | chpasswd -e;
其中,$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcx
lig为密文密码,生成方法如下:
执行以下命令,生成加密盐值
python -c "import crypt, getpass, pwd;print crypt.mksalt()"
回显信息如下:
$6$V6azyeLwcD3CHlpY
执行以下命令,根据盐值生成密文密码
python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')"
回显信息如下:
$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig
弹性云服务器创建成功后,您可以使用该密码登录。
华为云共建智能世界云底座[52] 华为公有云专属云主机DeH服务[51] 华为云场景化解决方案[49] 华为公有云产品[44] 华为云云主机[43] 华为云产品服务[43] 华为云服务器应用[43] 华为弹性云服务器[39] 华为公有云架构解决方案[38] 华为云提供的服务[37] 华为虚拟私有云vpc[37] 华为公有云介绍[32] 华为公有云提供哪些计算服务[30] 华为云漏洞扫描[27] 华为云软件开发服务[27] 华为公有云和私有云区别[27] 华为云域名注册[26] 华为云官网登陆[26] 华为公有云解决方案[26] 华为私有云产品有哪些[26] 华为私有云服务[25] 华为云数据库[23] 华为云安全[22] 华为公有云官网[22] 华为私有云的搭建方案[22] 华为云弹性云服务器应用[21] 华为公有云平台[20] 华为公有云行业解决方案[20] 华为私有云解决方案服务定制领导者[20] [19] 华为私有云服务器[19] 华为私有云网格结构[19] 华为公有云视讯解决方案[18] 华为云官网[17] 华为云速建站[17] 华为私有云架构[17] 华为云优势[16] 华为云服务器[16] 华为私有云部署架构[16] 华为云企业邮箱服务 (SAAS[15] 华为云邮箱[15] 华为公有云是什么[15] 华为公有云架构[15] 华为云迁移解决方案[14] 华为公有云解决方案服务定制领导者[14] 华为私有云解决方案[14] 云邮箱)[13] 华为云园区解决方案[13] 华为云服务总代理[13] 华为云速智能客服[13] 华为公有云服务[13] 华为私有云搭建方案[13] 云与计算咨询服务[12] 云与计算培训服务[11] 华为云备份[11] 华为云服务器配置[11] 华为云服务服务中心[11] 华为云服务核心分销商[11] 华为公有云[11] 华为私有云搭建[11] 云迁移与运营支撑服务[10] 公有云私有云混合云[10] 华为云服务器ECS[10] 华为云服务器成功案例[10] 华为云解决方案[10] 华为公有云通用解决方案[9] 华为智慧云课堂解决方案[9] 华为云数据解决方案[8] 华为云是什么[8] 华为私有云平台[8] 云与计算客户支持与运维使能服务[7] 华为云官网网站[7] 华为云智慧教育解决方案[7] 华为云智慧校园解决方案[7] 华为云桌面系统集成商[7] 华为云经销商[7] 华为代理公司有哪些[7] 华为私有云方案[7] 智慧教育云平台解决方案[7] 华为云服务器试用[6] 华为云网站建设服务器[6] 华为手机代理加盟[6] 华为私有云[6] 大数据使能服务[6] 智慧教育云计算解决方案[6] 华为云云主机 [5] 华为云智慧***解决方案[5] 华为云桌面总代理商[5] 云与计算客户支持服务[4] 华为云产品介绍[4] 华为云智慧制造解决方案[4] 华为云场景化解决方案[3] 华为公有云官网[3] 华为公有云通用解决方案[3] 华为弹性云服务器[3] 华为公有云产品 [3] 华为云产品服务[2] 华为云域名注册[2] 华为云数据库[2] 华为云智慧校园解决方案[2] 华为云服务器应用[2] 华为云服务器成功案例[2] 华为云软件开发服务[2] 华为公有云产品[2] 华为公有云介绍[2] 华为公有云和私有云区别[2] 华为公有云服务[2] 华为公有云架构[2] 华为公有云架构解决方案[2] 华为公有云视讯解决方案[2] 华为公有云解决方案[2] 华为私有云产品有哪些[2] 华为私有云服务[2] 华为私有云架构[2] 智慧教育云计算解决方案[2] 云规划设计与实施服务[2] 云邮箱[2] 华为云产品报价[2] 华为公有云通用解决方案 [2] 华为云服务器成功案例[1] 华为云桌面系统集成商[1] 云与计算客户支持与运维使能服务[1] 云迁移与运营支撑服务[1] 云迁移与运营支撑服务 [1] 华为云共建智能世界云底座[1] 华为云备份[1] 华为云安全[1] 华为云官网登陆[1] 华为云弹性云服务器应用[1] 华为云提供的服务[1] 华为云数据解决方案[1] 华为云智慧制造解决方案[1] 华为云服务器[1] 华为云服务核心分销商 [1] 华为云漏洞扫描[1] 华为云迁移解决方案 [1] 华为云速智能客服[1] 华为云邮箱[1] 华为公有云专属云主机DeH服务[1] 华为公有云是什么[1] 华为公有云行业解决方案[1] 华为私有云搭建[1] 华为私有云方案[1] 华为私有云服务.华为公有云专属云主机DeH服务.华为云产品报价[1] 华为私有云的搭建方案[1] 华为私有云网格结构[1] 华为私有云解决方案[1] 华为私有云部署架构[1] 为云产品服务[1] 云与计算咨询服务 [1] 云与计算客户支持与运维使能服务 [1] 云与计算客户支持与运维使能服务 云与计算客户支持服务[1] 华为云是什么 [1] 华为云软件开发服[1] 华为云速智能客服 [1] 华为代理加盟[1] 华为公有云架构解决方案 [1] 华为公有云解决方案服务定制领导者 [1] 华为弹性云[1] 华为弹性云服务器 华为云域名注册 华为云服务器应用[1] 华为私有云搭建 [1] 华为私有云搭建方案 [1] 华为私有云部署架构 [1] 大数据使能服务 [1] 撒[1]