说明书 101 - AWS OpsWorks

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

说明书 101

重要

该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

生产级 AWS OpsWorks Stacks 堆栈通常需要一些自定义,这通常意味着使用一个或多个食谱、属性文件或模板文件来实现自定义 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 Stacks,感兴趣的环境基于 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 与 Amazon EC2 实例结合使用。此提供程序对于在 Amazon Linux 上测试配方尤为有用,不过这仅在 Amazon EC2 实例上可用。vagrant-aws 提供程序免费,不过您必须拥有 Amazon Web Services account 并且必须为使用的任何 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 来测试配方。