使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境
发布于 2013-12-11
作者 Ross Gardler
微软开放技术有限公司 (MS Open Tech) 很高兴地宣布发行新的 Windows Azure Puppet 模块。通过这个模块,可以使用流行的开源 DevOps 工具 Puppet 在 Windows Azure 上提供 Linux 和 Windows 虚拟机。产品的支持以Puppet专属 Windows Azure 模块的形式发布在 Puppet
Forge 上。此外,还支持网络配置和数据库等关键服务的管理。这样一来,Puppet 用户现在可以在 Windows Azure 中运用 Puppet Forge 上超过 1800 种社区制定的配置。
微软开放技术的工程师们在开发这个模块的过程中着眼于增强流行 DevOps 工具之间的互操作性。DevOps 的重点是软件开发与 IT 运营之间的协作管理。它强调的是日益灵活的软件开发团队(要求迅速变更)与需要提供最大运行时间(变更可能影响可靠性)的运营团队之间的协同和融合。DevOps 旨在使这两个团队能够更有效地进行交流与合作。适用于 Windows Azure 的 Puppet 模块是保证 Puppet 用户能够在 Windows Azure
环境下利用其技术的重要一步。
Windows Azure Puppet 模块提供了您准备下列 Windows Azure 服务所需的全部工具:
- 虚拟机——Linux 和 Windows
- 虚拟网络——创建逻辑上隔离的 Azure 区段并将它们安全地连接到您的内部客户端和服务器
- SQL 服务器——创建和维护您的 SQL 数据库
此外,Windows Azure 用户现在还可访问 Puppet Forge 上 1800 多个现有的由社区定义的模块。
“能够使用 Puppet 在 Windows Azure 中配备虚拟机,从而利用 Puppet Forge 上由社区提供的各种大量模块对于许多 Puppet 用户而言非常具有吸引力。”Puppet Labs, Inc. 业务与公司发展副总裁 Mitch Sonies 表示,“我们认为,该模块对于在 Puppet 社区内推动 Azure 的使用是非常重要的一个步骤,我们希望看到社区的使用率和产业生态系统的贡献不断壮大。”
Puppet 和 Azure 入门
Puppet 是一套能够在开发与生产环境中实现 IT 基础设施的配置、配备和管理自动化的开源软件。它使用一种易于阅读的声明性语言对“理想状态”的机器配置进行描述。Puppet 使用这种描述将机器设置到理想状态并保持这种状态。关于 Puppet 的更多信息,请参考 Puppet Labs 网站上的详细文档。
微软开放技术的成果分为两部分。第一部分是 Puppet Manifests,它描述了可用 Puppet 管理的 Windows Azure。第二部分是跨平台命令行接口 (CLI)。通过 CLI 和 Manifests,可以很容易地管理 Linux 和 Windows 虚拟机、虚拟网络, 地缘组以及 SQL 服务器。其目标是实现开发、测试和部署环境的性能最大化。
虚拟机管理
虚拟机能够按需提供可扩展的计算机设施。Windows Azure 可同时提供多种配置的Windows 服务器和 Linux 服务器。要配置一台新的虚拟机并安装 Puppet
代理(以便以后通过 Puppet 管理),您可使用以下命令:
puppet azure_vm create \
--management-certificate pem-or-pfx-file-path \
--azure-subscription-id=your-subscription-id \
--image b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-13_04-amd64-server-20130501-en-us-30GB \
--location 'west us' \
--vm-name vmname \
--vm-user username \
--password ComplexPassword \
--puppet-master-ip yourPuppetMasterIPAddress
下表列出了全部操作。如要查看某个操作的可用选项列表,则执行“puppet help node-azure ACTION-NAME”命令。
操作 | 描述 |
bootstrap | 在一台现有的 Windows Azure 虚拟机中安装 Puppet 节点 |
Create | 创建 Windows Azure 虚拟机 |
Delete | 删除 Windows Azure 节点实例 |
Images | 列出 Windows Azure 镜像 |
locations | 列出 Windows Azure 位置 |
Servers | 列出 Windows Azure节点实例 |
shutdown | 关闭 Windows Azure节点实例 |
Start | 启动 Windows Azure节点实例 |
管理虚拟网络
通过 Azure 虚拟网络,您可在 Azure 中创建一个在逻辑上隔离的区段,并使用 IPSec
连接将它安全地连接到您的内部数据中心或客户机。这样您就能通过本地开发机器与 Azure 中的虚拟机之间的直接连接来更方便地对应用程序进行远程调试。使用虚拟网络,您可以使用与在内部开发工作中相同的工具对应用程序进行故障排除和调试。
此外,您还能利用这个功能在混合环境中构建分布式应用。例如,Windows Azure 中的 Web 应用程序可安全地访问内部数据库服务器或在内部认证服务器上对用户进行认证。
要创建一个虚拟网络,可运行以下命令:
puppet azure_vnet set --management-certificate pem-or-pfx-file-path \
--azure-subscription-id=your-subscription-id \
--virtual-network-name vnetname \
--affinity-group-name ag-name \
--address-space '172.16.0.0/12,192.168.0.0/16' \
--dns-servers 'dns1-1:10.10.8.8,dns2:172.8.4.4' \
--subnets 'subnet-1:172.16.0.0:12,subnet-2:192.168.0.0:29'
其他可用的操作有:
操作 | 描述 |
List | 列出虚拟网络 |
Set | 配置虚拟网络 |
set_xml_schema | 使用 xml 架构配置虚拟网络 |
管理 SQL 数据库服务器
很多应用程序都需要一个数据库服务器,因此我们提供了使用 Puppet 来创建和配置 SQL 数据库的命令。可使用这样的命令来创建服务器:
puppet azure_sqldb create --management-certificate pem-or-pfx-file-path \
--azure-subscription-id=your-subscription-id \
--management-endpoint=https://management.database.windows.net:8443/ \
--login loginname \
--password ComplexPassword \
--location 'West Us'
Manifest 文件
Manifest 文件是让您可以快速和可重复地按预定义的“理想状态”来部署虚拟机的一些定义、引用和命令的集合。除了上面描述过的 CLI 外,我们还提供了 Puppet 用来配置 Windows Azure 服务的 manifest 文件。作为 Windows Azure 模块的一部分,这些 Manifest 可从 Puppet
Forge 上下载,您也可对它们进行修改,以满足您的特定要求。我们提供的manifest 有:
- bootstrap.pp——允许创建一个新的 Puppet 节点
- db.pp——创建一个新的 SQL 服务器实例
- init.pp——定义一个 Windows Azure 类,以方便地部署到关联的 Windows Azure 帐户
- vm.pp——从一个虚拟机镜像创建一个新的虚拟机
- vnet.pp——创建一个新的虚拟网络
下一步是什么?
微软开放技术很高兴实现了在 Windows Azure 中使用 Puppet。这是我们持久承诺的一个重要部分,其目的在于确保 DevOps 工具的用户能在 Windows Azure 环境中尽可能地利用他们的技术。
本文转载自:
使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境的更多相关文章
- 有关 Windows 10 中“适用于 Linux 的 Windows 子系统(Beta)”
1.如何启用?(未来应该可从应用商店中直接安装) 在"控制面板"的"启用或关闭 Windows 功能"中进行勾选安装.(安装完成后需要重新启动) 2.然后呢? ...
- Windows Azure中对映像的管理及操作
映像是用作新虚拟机的创建模板的 .vhd 文件.映像是一个模板,因为它与已配置的虚拟机不同,没有计算机名称和用户帐户设置等特定设置.可以通过 Windows Azure 管理门户使用现有映像,或创建您 ...
- 虚拟机中实现Linux与Windows之间的文件传输
虚拟机中实现Linux与Windows之间的文件传输 标签: linux 2016年06月28日 11:17:37 2092人阅读 评论(0) 收藏 举报 分类: linux(2) 一.配置环 ...
- 在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器
若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚 ...
- 在 Azure 中的 Linux VM 上创建 MongoDB、Express、AngularJS 和 Node.js (MEAN) 堆栈
本教程介绍如何在 Azure 中的 Linux VM 上实现 MongoDB.Express.AngularJS 和 Node.js (MEAN) 堆栈. 通过创建的 MEAN 堆栈,可以在数据库中添 ...
- 跟我学Windows Azure 三 使用vs2013创建windows azure web site
首先我们需要登陆我们的windows azure上,然后访问 https://manage.windowsazure.cn/publishsettings/index 他会让我们下载我们的订阅证书文件 ...
- [Windows Azure] Configuring and Deploying the Windows Azure Email Service application - 2 of 5
Configuring and Deploying the Windows Azure Email Service application - 2 of 5 This is the second tu ...
- [原]Windows Azure开发之Linux虚拟机
Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是虚 ...
- Windows Azure开发之Linux虚拟机
Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是 ...
随机推荐
- UIView的常见属性
UIView的常见属性: @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDyn ...
- React-Native牛刀小试仿京东砍啊砍砍到你手软
React-Native牛刀小试仿京东砍啊砍砍到你手软 React-Native基础教程 *React-Native基础篇作者git *React-Native官方文档 *Demo 几个月前faceb ...
- gulp+browserSync+nodemon 实现express 全端自动刷新的实践
学习过程宝宝心里苦,不能怨政府.. 兴趣所致,一直放不下nodejs的学习,时隔多日,又把express捡起来打算重新再学学,一直没什么太大的长进,和实际的项目经验.真的醉了,太懒了. 今天在重新研究 ...
- 两款web api 调试工具
两款web api 调试工具: Fiddler (http://www.telerik.com/fiddler) Postman(http://www.getpostman.com/) 资源: Fid ...
- (转)Libevent(1)— 简介、编译、配置
转自:http://name5566.com/4190.html 参考文献列表:http://www.wangafu.net/~nickm/libevent-book/ 此文编写的时候,使用到的 Li ...
- 内容写到 csv 格式的文件中 及 读取 csv 格式的文件内容
<?php/*把内容写到 csv 格式的文件中 基本思路是:1.用 $fp = fopen("filename", 'mode')打开一个csv文件,可以是打开时才建立的2. ...
- PHP 文字,图片水印,缩略图,裁切成小图(大小变小)
文字水印基本思路:1.用getimagesize()获取图片的信息(as:大小,属性等):2.根据图片信息用imagecreatefromjpeg ()/imagecreatefromgif/imag ...
- HTML5学习笔记----html5与传统html区别
一. HTML5语法的改变 该知识点所说变化指的是基于HTML4基础上所定义的改变,主要有如下: HTML5的文件扩展符(.html或.htm)与内容类型(text/html)保持不变. HTML5中 ...
- PHP程序实现利用rand(1,100)函数产生10个1~100之间的随机数
//echo rand(1,100);$max=0;$min=100;for($i=0;$i<=9;$i++){ $rand[$i]=rand(1,100); if($rand[$i]>$ ...
- 2014年度辛星html教程夏季版第四节
我们前面也涉及了HTML中的一些东西,接下来我们要涉及到图像了,如果没有图像,即使文字的样式再多,再复杂,终归还是单调的,我们就需要用图片来给我们的网页增加更多的表现形式. ************* ...