发布于 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 环境中尽可能地利用他们的技术。

本文转载自:

http://cn.msopentech.com/blog/2013/12/11/%e4%bd%bf%e7%94%a8-puppet-%e5%9c%a8-windows-azure-%e4%b8%ad%e9%85%8d%e5%a4%87-linux-%e5%92%8c-windows-%e7%8e%af%e5%a2%83/


使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境的更多相关文章

  1. 有关 Windows 10 中“适用于 Linux 的 Windows 子系统(Beta)”

    1.如何启用?(未来应该可从应用商店中直接安装) 在"控制面板"的"启用或关闭 Windows 功能"中进行勾选安装.(安装完成后需要重新启动) 2.然后呢? ...

  2. Windows Azure中对映像的管理及操作

    映像是用作新虚拟机的创建模板的 .vhd 文件.映像是一个模板,因为它与已配置的虚拟机不同,没有计算机名称和用户帐户设置等特定设置.可以通过 Windows Azure 管理门户使用现有映像,或创建您 ...

  3. 虚拟机中实现Linux与Windows之间的文件传输

    虚拟机中实现Linux与Windows之间的文件传输 标签: linux 2016年06月28日 11:17:37 2092人阅读 评论(0) 收藏 举报  分类: linux(2)    一.配置环 ...

  4. 在 Azure 中的 Linux 虚拟机上使用 SSL 证书保护 Web 服务器

    若要保护 Web 服务器,可以使用安全套接字层 (SSL) 证书来加密 Web 流量. 这些 SSL 证书可存储在 Azure Key Vault 中,并可安全部署到 Azure 中的 Linux 虚 ...

  5. 在 Azure 中的 Linux VM 上创建 MongoDB、Express、AngularJS 和 Node.js (MEAN) 堆栈

    本教程介绍如何在 Azure 中的 Linux VM 上实现 MongoDB.Express.AngularJS 和 Node.js (MEAN) 堆栈. 通过创建的 MEAN 堆栈,可以在数据库中添 ...

  6. 跟我学Windows Azure 三 使用vs2013创建windows azure web site

    首先我们需要登陆我们的windows azure上,然后访问 https://manage.windowsazure.cn/publishsettings/index 他会让我们下载我们的订阅证书文件 ...

  7. [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 ...

  8. [原]Windows Azure开发之Linux虚拟机

      Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是虚 ...

  9. Windows Azure开发之Linux虚拟机

     Windows Azure是微软的云服务集合,用来提供云在线服务所需要的操作系统与基础存储与管理的平台,是微软的云计算的核心组成组件之一.其中windows azure提供的最重要的一项服务就是 ...

随机推荐

  1. linux下神奇的script命令

    script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他人观看.script 的好处就在于你在终端中的所有操作.敲过的 ...

  2. JDBC——数据层DAO

    DAO:Data Access Object DAO 数据层 Service 逻辑业务层 View  视图层 entity   实体层 实现增.删.改.查的数据层 public class EmpDA ...

  3. Javascript三元条件运算符

    今天谈一个小知识点,三元运算符.三元运算,顾名思义会有三个要素,表达式的大致组成为condition ? expr1 : expr2:一个语句加两个表达式.问号之前为判断语句.如果为真,则执行第一个表 ...

  4. myeclipse启动报JVM terminated. Exit code=1

    报错信息如图: 解决办法: 删除当前workspaces下文件夹,路径为:%Workspaces%/.metadata/.plugins/org.eclipse.core.runtime

  5. IO流中的文件创建并且写入读取

    package com.java.inoutputstreamDmeo.www; import java.io.File;import java.io.FileInputStream;import j ...

  6. Chi Square Distance

    The chi squared distance d(x,y) is, as you already know, a distance between two histograms x=[x_1,.. ...

  7. 理解Java中的字符串类型

    1.Java内置对字符串的支持: 所谓的内置支持,即不用像C语言通过char指针实现字符串类型,并且Java的字符串编码是符合Unicode编码标准,这也意味着不用像C++那样通过使用string和w ...

  8. 锋利的Jquery解惑系列(一)------基本概念大锅炖

    声明:虽然是基本概念但也是笔者经过一番学习才总结的这些文章,所以他不包括Jquery优缺点.特点.语法的介绍. 概念一:jQuery对像与DOM对象 DOM(Document Object Model ...

  9. linux环境下安装php扩展

    本文只提供源码安装的方法(已安装pcntl为例) 其他方法请参考:http://doc3.workerman.net/appendices/install-extension.html 1.利用php ...

  10. Python全栈开发之MySQL(三)视图,存储过程触发器,函数,事务,索引

    一:视图 1:什么是视图? 视图是指存储在数据库中的查询的SQL语句,具有简单.安全.逻辑数据独立性的作用及视点集中简化操作定制数据安全性的优点.视图包含一系列带有名称的列和行数据.但是,视图并不在数 ...