Microsoft Azure 上的自定义数据和 Cloud-Init
自定义数据是什么?
客户经常询问如何才能在配置Microsoft Azure
虚拟机时插入脚本或其他元数据。在其他云中,这个概念通常称为用户数据。MicrosoftAzure
中也有一项类似的功能,我们称之为自定义数据。
自定义数据随其他配置信息(例如新的主机名、用户名、密码、证书和密钥等)一起发送到 VM。这类数据经过
base64 编码后传递给 Azure API。在
Windows 上,自定义数据最终作为二进制文件保存在
%SYSTEMDRIVE%\AzureData\CustomData.bin
中。在 Linux
上,自定义数据在创建虚拟机时被复制到 /var/lib/waagent
目录的 ovf-env.xml
文件。为了方便起见,更高版本的Microsoft Azure Linux
代理同样会将base64
编码后的数据复制到
/var/lib/waagent/CustomData。
Cloud-Init
是什么?
目前,只有Microsoft Azure
库中的Ubuntu
镜像预安装了cloud-init,并设置为处理在虚拟机创建期间发送的自定义数据。这意味着,对于Ubuntu,您可以借助cloud-init
配置文件使用自定义数据对VM
进行创建,或只发送
cloud-init 将在创建时执行的脚本。有关详细信息,请参阅
cloud-init
文档。
如果镜像上不能使用cloud-init,您仍可以使用预安装脚本时提供的自定义数据或者系统上可以读取数据的其他工具。在这种情况下,可能会安装可在自定义数据中通过
%SYSTEMDRIVE%\AzureData\CustomData.bin (Windows)
或
/var/lib/waagent/ovf-env.xml (Linux)
文件读取的脚本,启动时运行该脚本并解码,使其作用于自定义数据。安装脚本后,可以取消配置
Windows
或
Linux
镜像,捕获此镜像以供重复使用。
工作原理
目前,向 IaaS VM
插入自定义数据最简单的方式就是使用
Windows Azure
命令行工具。目前,Microsoft
Azure Powershell cmdlet尚不支持此功能,但很快就会在即将发行的版本中推出。
自 CLI
工具 0.7.5
版起,出现了一个称为
--custom-data
的新参数。此参数将文件名视作参数,然后 CLI
工具会使用 base64
对文件内容进行编码,并将其与配置信息一起发送。此处唯一的限制就是文件必须小于 64KB,否则
AzureAPI 将不会接受请求。
以下是如何向 UbuntuLinux VM
准备和传递自定义数据的简单示例:

在此示例中,custom-data.txt可以是cloud-init
配置文件,也可以只是一个shell
脚本(只要以#!
开头,cloud-init就会执行)。试试看吧。
其他参考:
http://msdn.microsoft.com/en-us/library/windowsazure/jj157186.aspx
Microsoft Azure 上的自定义数据和 Cloud-Init的更多相关文章
- Microsoft Azure News(2) 在Microsoft Azure上运行SAP应用程序
<Windows Azure Platform 系列文章目录> 2014年6月27日消息,在 Microsoft Azure 上提供 SAP Business Suite 软件.All-I ...
- Windows Azure上的大数据服务: HDInsight的介绍
这个视频介绍了目前非常流行的大数据处理框架Hadoop的Windows Azure上的实现:HDInsight,以及利用MapReduce来对大数据进行分析,利用Hive进行查询,利用客户端Power ...
- 教程:使用 MongoDB、WCF、OData 和 PowerBI 构建 Azure 上的商业智能解决方案
发布于 2014-05-20 作者 陈 忠岳 目录 概述 前提条件 创建 Windows Server 2012 Datacenter 虚拟机 通过 WCF(Windows Communicat ...
- 通过Microsoft Azure服务设计网络架构的经验分享(转)
原文:http://www.infoq.com/cn/articles/azure-networking-tips 本文从产品设计和架构角度分享了 Microsoft Azure 网络服务方面的使用经 ...
- 通过Microsoft Azure服务设计网络架构的经验分享
作者 王枫 发布于 2014年4月8日 本文从产品设计和架构角度分享了Microsoft Azure网络服务方面的使用经验,希望你在阅读本文之后能够了解这些服务之间,从而更好地设计你的架构. Mic ...
- Microsoft Azure 负载平衡服务
Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...
- 在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像
发布于 2014-12-11 作者 陈阳 FreeBSD 基础镜像现已登陆中国的 VM Depot! 对于青睐 BSD 而非 Linux 的开源爱好者来说,这无疑是个好消息.同时,随着该基础镜像 ...
- 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构
什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...
- Microsoft Azure 01 (Summarize)
What is Windows Azure? As a cloud platform from Microsoft that provides a wide range of different se ...
随机推荐
- 灵光一闪-VS设计界面能访问到private修饰的各种控件
大家都知道,用VS设计界面时,VS默认控件的访问修饰符为private,但是我就很奇怪,private修饰的字段不是只有类内部才能访问吗? 好神奇的VS,这到底是怎么实现的?难道就是类似文本编辑器的作 ...
- Jexus 配置多个站点
一:jexus配置站点的文件在 siteconf文件夹中,里面有多少个配置文件,就可以配置多少个站点 如我的里面有3个配置文件,其中default是原始文件,site1和siteconf就是我网站的配 ...
- [C#]Windows文件分类器小程序
我平时习惯把各种文件都下载在`下载`文件夹中,时间久了,文件多了,想要找个文件就不那么方便了.于是我就想自己写一个小程序来实现下载文件的自动整理.我想到的文件分类方式是按照文件扩展名分类:把各文件移动 ...
- C语言学习 —— 字符串的学习(一)
这是本人在学习 C语言有关 字符串内容 时的相关笔记 由于本人技术有限,如有错误,还望指正 C语言中数据类型中只有 字符型(char),而 char型 变量一次只能存储一个字符,在日常工作中经常需要定 ...
- Ant Table组件
http://www.cnblogs.com/hujunzheng/p/5689650.html React中使用Ant Table组件 v一.Ant Design of React http:/ ...
- python进阶--打包为exe文件
一.Python打包为EXE文件有不少方案,比较常用的有下面两种方式: 1.使用py2exe 详细介绍:http://www.cnblogs.com/jans2002/archive/2006/09/ ...
- Linux 安装xtrabackup的依赖问题
问题: 尝试安装xtrabackup rpm -ivh percona-xtrabackup-2.2.11-1.el7.x86_64.rpm 报错 perl(DBD::mysql) 被 percona ...
- 转:script中的async和defer
script中的async和defer defer: This Boolean attribute is set to indicate to a browser that the script is ...
- 关于Apple Pay,一篇让你不看就会后悔的文章
编者按:本文作者康上明学为“小米生活”产品经理,在苹果Apple Pay发布后,他对该产品做了深入研究,带来这篇文章. 对于 Apple Pay ,我有几个疑问: 线下支付是一个庞大复杂的流程,当中涉 ...
- 2016 Multi-University Training Contest 3 总结
又是多校总结时间. 这两天重感冒,精神不佳,总结一拖再拖,结果到了多校第四场结束后回来总结第三场.不过因为还在补第三场的题,所以还是记得挺清楚的 欣君说决定自己AFK试试,于是全程读题算公式. 欣君翻 ...