说明书 101 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

说明书 101

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

生产级别 AWS OpsWorks 堆栈堆栈通常需要一些自定义,这通常意味着使用一个或多个食谱、属性文件或模板文件来实现自定义 Chef 食谱。本主题是实现食谱的教程介绍 AWS OpsWorks 堆栈。

有关如何操作的更多信息 AWS OpsWorks Stacks 使用食谱,其中包括对食谱的简要概述,请参阅。说明书和诀窍有关如何实施和测试 Chef 配方的更多信息,请参阅使用 Chef 的测试驱动型基础设施,第 2 版

该教程示例分为两个部分:

  • 说明书基础知识 是一组演练示例,面向不熟悉 Chef 的用户;有经验的 Chef 用户可以跳过此部分。

    该示例向您演示如何实施说明书来执行常见任务的基础知识,例如安装软件包或者创建目录。为了简化该过程,您将使用两个非常有用的工具 VagrantTest Kitchen,以在虚拟机中本地运行大部分示例。在开始说明书基础知识之前,您应先阅读Vagrant 和 Test Kitchen 以了解如何安装和使用这些工具。由于 Test Kitchen 尚不支持 Windows,这些示例均面向 Linux,并带有备注来说明如何调整以用于 Windows。

  • 实施食谱 AWS OpsWorks 堆栈描述了如何实现配方 AWS OpsWorks 堆栈,包括用于 Windows 堆栈的堆栈。

    它还包含一些更高级的主题,例如如何使用 Berkshelf 来管理外部说明书。这些示例面向新 Chef 用户编写,与 说明书基础知识 中的示例非常类似。然而 AWS OpsWorks Stacks 的工作原理与 Chef 服务器略有不同,因此我们建议有经验的 Chef 用户至少通读本节。

Vagrant 和 Test Kitchen

如果您在使用针对 Linux 实例的说明书,在学习和启动开发与测试时,Vagrant 和 Test Kitchen 是非常有用的工具。本主题提供了 Vagrant 和 Test Kitchen 的简要说明,并指向安装说明和演练,帮助您设置和熟悉如何使用这些工具的基本知识。由于 Vagrant 支持 Windows 而 Test Kitchen 不支持,因此只提供了这些工具的 Linux 示例。

Vagrant

Vagrant 为在虚拟机上执行和测试代码提供了一致的环境。它支持广泛的环境 (称为 Vagrant 盒子),每个盒子表示一个配置的操作系统。对于 AWS OpsWorks 堆栈,感兴趣的环境基于 Ubuntu、Amazon 或红帽企业 Linux (RHEL) 发行版,因此示例主要使用名为的 Vagrant 方框。opscode-ubuntu-12.04

Vagrant 可用于 Linux、Windows 和 Macintosh 系统,因此,您可以使用偏好的工作站在任何受支持的操作系统上实施和测试配方。本章的示例在 Ubuntu Linux 系统上创建,不过可以直接转换为适用于 Windows 或 Macintosh 系统的过程。

Vagrant 本质上是面向虚拟提供程序的包装器。大多数示例都使用VirtualBox提供程序。 VirtualBox 是免费的,适用于 Linux、Windows 和 Macintosh 系统。如果您的系统上还没有安装说明,Vagrant 演练会提供安装说明。 VirtualBox 请注意,您可以在上运行基于 Ubuntu 的环境, VirtualBox但是 Amazon Linux 仅适用于亚马逊实例。EC2但是,你可以在上面运行类似的操作系统,比如 CentOS VirtualBox,这对于初始开发和测试很有用。

有关其他提供程序的信息,请参阅 Vagrant 文档。特别是,vagrant-aws插件提供商允许您将Vagrant与亚马逊EC2实例一起使用。该提供程序对于在 Amazon Linux 上测试配方特别有用,该提供程序仅在亚马逊EC2实例上可用。该vagrant-aws提供商是免费的,但您必须拥有一个AWS帐户并为您使用的任何AWS资源付费。

此时,您应该通读 Vagrant 的入门演练,其中介绍了如何在工作站上安装 Vagrant 以及如何使用 Vagrant 的基础知识。请注意,本章中的示例不使用 Git 存储库,如果您希望,可以忽略掉演练中的这一部分。

Test Kitchen

Test Kitchen 简化了在 Vagrant 上执行和测试您的说明书的过程。在实际应用中,您几乎不需要直接使用 Vagrant。Test Kitchen 执行了大部分最常见任务,包括:

  • 在 Vagrant 中启动实例。

  • 将说明书传输到实例。

  • 在实例上运行说明书的配方。

  • 在实例上测试说明书的配方。

  • SSH使用登录实例。

我们建议不要直接安装 Test Kitchen Gem,而是安装 Chef DK。除了 Chef 本身,这个软件包还包括 Test Kitchen、Berkshelf 和其他几个有用的工具。ChefSpec

此时,您应该通读 Test Kitchen 的入门演练,其中介绍了如何使用 Test Kitchen 来执行和测试配方的基础知识。

注意

本章中的示例将 Test Kitchen 用作运行配方的便利方式。如果您愿意,您可在完成“手动验证”部分之后停止入门演练,这一部分介绍了您所需了解的全部示例信息。但是,Test Kitchen 主要是一个测试平台,支持诸如 bash 自动测试系统 (BATS) 之类的测试框架。您应抽空完成剩余的演练以了解如何使用 Test Kitchen 来测试配方。