若要以一致的方式大规模创建和管理 Azure 虚拟机 (VM),通常需要某种形式的自动化。 可以通过许多工具和解决方案来自动完成整个 Azure 基础结构部署和管理生命周期。 本文介绍了一些可以在 Azure 中使用的基础结构自动化工具。 这些工具通常适合以下某个方法:

Chef

Chef 是一个自动化平台,用于定义基础结构的配置、部署和管理方式。 其他组件包括:Chef Habitat,用于应用程序生命周期自动化而不是基础结构;Chef InSpec,用于自动遵循安全和策略要求。 Chef 客户端安装在目标计算机上,通过一个或多个中心 Chef 服务器来存储和管理配置。 有关详细信息,请参阅 An Overview of Chef(Chef 概述)。

了解如何:

Cloud-init

Cloud-init 是一种广泛使用的方法,用于在首次启动 Linux VM 时对其进行自定义。 可使用 cloud-init 来安装程序包和写入文件,或者配置用户和安全性。 在初始启动期间运行 cloud-init 时,无需额外的步骤和代理即可应用配置。

Cloud-init 还支持不同的发行版。 例如,不需使用 apt-get install 或 yum install 来安装包, 而应定义需安装的包的列表。 Cloud-init 将对所选发行版自动使用本机包管理工具。

我们正在与合作伙伴协作,将 cloud-init 纳入用户向 Azure 提供的映像中并使其在映像中正常运行。 下表概述了 cloud-init 当前在 Azure 平台映像上的可用性:

别名 发布者 产品 SKU Version
UbuntuLTS Canonical UbuntuServer 14.04.5-LTS 最新
UbuntuLTS Canonical UbuntuServer 16.04-LTS 最新
CoreOS CoreOS CoreOS Stable 最新

了解如何:

PowerShell DSC

PowerShell Desired State Configuration (DSC) 是一个管理平台,用于定义目标计算机的配置。 也可通过 Open Management Infrastructure (OMI) 服务器在 Linux 上使用 DSC。

DSC 配置定义要在计算机上安装的内容,以及如何配置主机。 本地配置管理器 (LCM) 引擎在每个目标节点上运行,此类节点根据推送的配置处理请求的操作。 拉取服务器是一项在中心主机上运行的 Web 服务,用于存储 DSC 配置和关联的资源。 该拉取服务器与每个目标主机上的 LCM 引擎通信,提供所需的配置并报告符合性情况。

了解如何:

Azure 自定义脚本扩展

适用于 Linux 或 Windows 的 Azure 自定义脚本扩展在 Azure VM 上下载和执行脚本。 可以在创建 VM 时使用该扩展,也可以在 VM 处于使用状态后随时使用该扩展。

可以从 Azure 存储或任何公共位置(例如 GitHub 存储库)下载脚本。 使用自定义脚本扩展时,可以通过在源 VM 上运行的任何语言来编写脚本。 可以根据需要使用这些脚本来安装应用程序或配置该 VM。 若要确保凭据的安全,可将密码之类的敏感信息存储在受保护配置中。 这些凭据只在 VM 内解密。

了解如何:

Packer

在 Azure 中创建自定义 VM 映像时,Packer 会自动完成生成过程。 可以使用 Packer 来定义 OS 并运行配置后脚本,根据具体需求来自定义 VM。 配置完成后,会将 VM 作为托管磁盘映像捕获。 Packer 自动完成创建源 VM、网络和存储资源,运行配置脚本,然后创建 VM 映像这一过程。

了解如何:

Terraform

Terraform 是一项自动化工具,用于通过 HashiCorp Configuration Language (HCL) 这个单一模板格式语言来定义和创建整个 Azure 基础结构。 可以使用 Terraform 来定义模板,自动完成为给定应用程序解决方案创建网络、存储和 VM 资源这一过程。 可以将适合其他平台的现有 Terraform 模板用于 Azure 以确保一致性并简化基础结构部署,不需转换为 Azure 资源管理器模板。

了解如何:

Azure 自动化

Azure 自动化使用 Runbook 在目标 VM 上处理一组任务。 Azure 自动化用于管理现有 VM,而不是创建基础结构。 Azure 自动化可以跨 Linux 和 Windows VM 运行,还可以通过混合 Runbook 辅助角色在本地虚拟机或物理机上运行。 可以将 Runbook 存储在源代码管理存储库(例如 GitHub)中。 然后即可手动运行或按定义的计划运行这些 Runbook。

Azure 自动化还提供 Desired State Configuration (DSC) 服务,用于针对给定的一组 VM 的配置方式创建定义。 然后,DSC 就可以确保所需配置得到应用且 VM 保持一致。 Azure 自动化 DSC 可以在 Windows 和 Linux 计算机上运行。

了解如何:

Visual Studio Team Services

Team Services 是一套工具,用于共享和跟踪代码、使用自动化生成,以及创建完整的持续集成和开发 (CI/CD) 管道。 Team Services 集成 Visual Studio 和其他编辑器,简化了使用过程。 Team Services 还可以创建和配置 Azure VM,然后向其部署代码。

了解如何:

Jenkins

Jenkins 是一种持续集成服务器,用于部署和测试应用程序,以及创建进行代码交付的自动化管道。 可以通过成百上千的插件来扩展核心 Jenkins 平台,还可以通过 Webhook 集成许多其他的产品和解决方案。 可以在 Azure VM 上手动安装 Jenkins,从 Docker 容器内部运行 Jenkins,或者使用预建的 Azure Marketplace 映像。

了解如何:

后续步骤

可以通过许多不同的选项,在 Azure 中使用基础结构自动化工具。 可以自由使用最适合自己的需求和环境的解决方案。 若要开始尝试一些内置到 Azure 的工具,请了解如何自动完成 Linux 或 Windows VM 的自定义。立即访问http://market.azure.cn

在 Azure 中将基础结构自动化工具与虚拟机配合使用的更多相关文章

  1. Windows Azure -Azure 网站、云服务和虚拟机的对比

    Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...

  2. Azure 网站、云服务和虚拟机比较

    最后更新时间(英文版):09/24/2014 最后更新时间(中文版):04/11/2015 Azure 提供几种方式托管 web 应用程序,如 Azure 网站.云服务和虚拟机.查看这些不同的选项后, ...

  3. 组建自动化工具Ant

    组建自动化工具Ant Ant可以帮助我们自动化的完成项目的构建 下面是维基百科对Ant的介绍:http://zh.wikipedia.org/wiki/Apache_Ant Apache Ant,是一 ...

  4. C#最佳工具集合:IDE、分析、自动化工具等

    C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会 ...

  5. 运维自动化工具ansible

    企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...

  6. 十个强大的DevOps基础设施自动化工具,不容错过

    Devops基础设施自动化的工具 有许多工具用于基础设施自动化.使用哪个工具决定于体系结构和基础设施的需求.下面我们列出了一些伟大的工具,用于不同类别配置管理.编制.持续集成.监控等. 1.Chef ...

  7. web自动化工具-开篇

    web自动化工具-开篇 最近几年,前端技术风一样的速度迭代更新,各种框架工具雨后春笋般涌现,作为一个平凡的开发者,也只能在洪流中沉沉浮浮,微不足道,以前前端叫做切图仔.美工,如今改了称号叫前端工程师, ...

  8. web自动化工具-liveStyle

    web自动化工具-liveStyle LiveStyle. The first bi-directional real-time edit tool for CSS, LESS and SCSS主要用 ...

  9. web自动化工具-livereload

    web自动化工具-livereload livereload是一个很神奇的工具,主要解放了F5键,监听文件变动,整个页面自动刷新.可搭载gulp等构建工具使用.和liveStyle 针对样式文件相比, ...

随机推荐

  1. sql左右连接的区别

    数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表 ...

  2. Java 中的队列 Queue

    一.队列的定义 我们都知道队列(Queue)是一种先进先出(FIFO)的数据结构,Java中定义了java.util.Queue接口用来表示队列.Java中的Queue与List.Set属于同一个级别 ...

  3. css text-align文字两端对齐

    text-align:start | end | left | right | center | justify | match-parent | justify-all justify: 内容两端对 ...

  4. solr(三) : 导入数据库表数据

    solr 除了能查询文档中的数据外, 还可以导入数据库中的数据. 也就是说, solr 能查询其他数据库中的数据(solr本身也是一个数据库, 非关系型的). 那接下来就试一下导入mysql数据库中的 ...

  5. mysql命令行查看建表语句

    命令如下: SHOW CREATE TABLE tbl_name 例子: mysql> SHOW CREATE TABLE t\G . row ************************* ...

  6. CRM项目分析建表

    这个CRM项目是我们学习一年多以来,第一次团队合作完成的项目!之前的项目都是做半个月的,但是都是自己单独完成一套项目的!这次我们还是做半个月的!但是我们是分工合作的!自己所完成的内容都是不同的!我觉得 ...

  7. elasticSearch6源码分析(6)http和transport模块

    1.http模块概述 The http module allows to expose Elasticsearch APIs over HTTP. The http mechanism is comp ...

  8. JavaScript回调函数及数组方法测试

    JavaScript回调函数及数组方法测试 具体代码如下: <!DOCTYPE html> <html lang="en"> <head> &l ...

  9. [android] 新闻客户端主界面部分

    当我们使用activity加fragment的时候,每个界面都要建立一个fragment,每个fragment里面都要重写onCreate(),onCreateView(),onActivityCre ...

  10. windows中80端口被System占用,PID=4的问题

    在windows中如果tomcat需要使用80端口,发现该端口已经被占用,而netstat -ano发现该80端口被一个System的进程占用了,而PID=4.我们可以通过下面的方式找到对应的进程,然 ...