Microsoft Azure 上的自定义数据和 Cloud-Init
来源:互联网 发布:单片机驱动步进电机 编辑:程序博客网 时间:2024/05/20 05:56
自定义数据是什么?
客户经常询问如何才能在配置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
本文翻译自:http://blogs.msdn.com/b/windowsazure/archive/2014/04/21/custom-data-and-cloud-init-on-windows-azure.aspx
- Microsoft Azure 上的自定义数据和 Cloud-Init
- 转载文章:Windows Azure 基础结构服务上的 Microsoft Dynamics NAV 和 Microsoft Dynamics GP!
- microsoft的azure上的Microsoft Translator使用例子
- Microsoft Research和Windows Azure合作伙伴对数据发现和共享的影响
- cloud-init 数据获取处理文档
- Azure网站上的PHP — 配置自定义版本PHP
- 关于Oracle Sales Cloud 中自定义对象和字段数据的导入
- Azure与Cloud Foundry的第一次握手
- Microsoft Azure
- 云计算里AWS和Azure的探究(6) - Amazon Simple Storage Service 和 Microsoft Azure Blob Storage
- Windows Azure SDK 1.5、Windows Azure Tools for Microsoft Visual Studio 2010和新的服务管理功能发布了
- cloud-init 的工作流程原理
- 使用Azure上的Azure AD服务管理Office 365账户(无缝打通Azure和Office 365)
- 保持与 Microsoft Azure Files 的连接
- 云计算和数据 关于Windows Azure Table Storage 和 SQL Azure的选择
- 在IIS上部署Django 之 Microsoft Azure
- 具有 Windows Azure AD 和 Microsoft OWIN 组件的安全 ASP.NET Web API
- 携手 Google 和 Docker 为 Microsoft Azure 带来全新的开源容器技术
- Multiple dex files define
- linux nohup命令
- Java中final的用法总结
- 消息:树已经存在XXXX名称
- svn安装,svn常用命令介绍
- Microsoft Azure 上的自定义数据和 Cloud-Init
- BroadcastReceiver的声明周期和使用
- 【Android】Android布局中实现圆角边框
- swing 界面编程
- 6410 selected device is not a touchscreen I understand
- HiveOptimization--Reduce进程缓慢问题
- 舞魔金星[读书笔记]
- ftk学习记(多窗口篇)
- oracle 行转列和列转行