在 Azure 中将基础结构自动化工具与虚拟机配合使用
若要以一致的方式大规模创建和管理 Azure 虚拟机 (VM),通常需要某种形式的自动化。 可以通过许多工具和解决方案来自动完成整个 Azure 基础结构部署和管理生命周期。 本文介绍了一些可以在 Azure 中使用的基础结构自动化工具。 这些工具通常适合以下某个方法:
自动执行 VM 的配置
- 工具包括 Chef。
- 特定于 VM 自定义的工具包括适用于 Linux VM 的 cloud-init、PowerShell Desired State Configuration (DSC),以及适用于所有 Azure VM 的 Azure 自定义脚本扩展。
自动化基础结构管理
自动执行应用程序部署和交付
- 示例包括 Visual Studio Team Services 和 Jenkins。
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 中将基础结构自动化工具与虚拟机配合使用的更多相关文章
- Windows Azure -Azure 网站、云服务和虚拟机的对比
Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...
- Azure 网站、云服务和虚拟机比较
最后更新时间(英文版):09/24/2014 最后更新时间(中文版):04/11/2015 Azure 提供几种方式托管 web 应用程序,如 Azure 网站.云服务和虚拟机.查看这些不同的选项后, ...
- 组建自动化工具Ant
组建自动化工具Ant Ant可以帮助我们自动化的完成项目的构建 下面是维基百科对Ant的介绍:http://zh.wikipedia.org/wiki/Apache_Ant Apache Ant,是一 ...
- C#最佳工具集合:IDE、分析、自动化工具等
C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会 ...
- 运维自动化工具ansible
企业级自动化运维工具应用实战ansible 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备.公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出 ...
- 十个强大的DevOps基础设施自动化工具,不容错过
Devops基础设施自动化的工具 有许多工具用于基础设施自动化.使用哪个工具决定于体系结构和基础设施的需求.下面我们列出了一些伟大的工具,用于不同类别配置管理.编制.持续集成.监控等. 1.Chef ...
- web自动化工具-开篇
web自动化工具-开篇 最近几年,前端技术风一样的速度迭代更新,各种框架工具雨后春笋般涌现,作为一个平凡的开发者,也只能在洪流中沉沉浮浮,微不足道,以前前端叫做切图仔.美工,如今改了称号叫前端工程师, ...
- web自动化工具-liveStyle
web自动化工具-liveStyle LiveStyle. The first bi-directional real-time edit tool for CSS, LESS and SCSS主要用 ...
- web自动化工具-livereload
web自动化工具-livereload livereload是一个很神奇的工具,主要解放了F5键,监听文件变动,整个页面自动刷新.可搭载gulp等构建工具使用.和liveStyle 针对样式文件相比, ...
随机推荐
- Redis 3.2.4集群实战
一.Redis Cluster集群设计Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis3.0之后版本支持Redis-Cluster集群,Redis-Cluster采用无中心 ...
- JavaScript事件-this传递
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- Spring事务内方法调用自身事务 增强的三种方式
ServiceA.java文件: 查看Spring Tx的相关日志: 可以看到只创建了一个事物ServiceA.service方法的事务,但是callSelf方法却没有被事务增强; 分析原因:Spr ...
- Linux入门练习2
export命令用来设置环境变量. 使用单引号时,变量不会被扩展,将依照原样显示.示例: 如果变量未定义过,则什么都不打印: 获得变量值长度 识别当前所使用得shell: 检查是否为超级用户: UID ...
- SHELL脚本攻略(学习笔记)--2.1 cat
cat命令 输出一个或多个文件的内容. cat [OPTION]... [FILE]... 选项说明 -n:显示所有行的行号 -b:显示非空行的行号 -E:在每行行尾加上$符号 -T:将TAB符号输出 ...
- 网络之AFNetworking
Json.Xml解析第三方库多了去,就不一一说明,现在开始进入AFNetworking.由于AFNetworking支持ARC,ASI不支持ARC,现在越来越多的开始使用AFNetworking. h ...
- 【Java并发编程】10、Java 理论与实践: 正确使用 Volatile 变量
转自:http://www.importnew.com/15842.html Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”:与 synchron ...
- 一千行 MySQL 学习笔记
Windows服务 -- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意 ...
- Android - AMS源码分析
Android核心分析之AMS App和AMS(SystemServer进程)还有zygote进程分属于三个独立的进程 App与AMS通过Binder进行IPC通信,AMS(SystemServer进 ...
- MVC--初步理解(01)
一.一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻 ...