本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例 1:安装软件包
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
软件包安装是配方的较常见用法之一,可能非常简单,具体取决于软件包。例如,以下配方会在 Linux 系统上安装 Git。
package 'git' do action :install end
package
资源package_name
属性的默认值,可标识软件包。install
操作会指导提供程序安装软件包。您可以通过跳过 install
来简化代码;它是 package
资源的默认操作。当您运行配方时,Chef 会利用相应的提供程序来安装软件包。在将用于示例的 Ubuntu 系统上,提供程序会通过调用 apt-get
来安装 Git。
注意
在 Windows 系统上安装软件的过程稍有不同。有关更多信息,请参阅 安装 Windows 软件。
要使用 Test Kitchen 在 Vagrant 中运行此配方,首先需要设置说明书,并初始化和配置 Test Kitchen。以下内容针对的是 Linux 系统,但 Windows 和 Macintosh 系统的过程与此过程基本类似。首先打开终端窗口;本章中的所有示例均使用命令行工具。
准备说明书
-
在您的主目录中,创建一个名为
opsworks_cookbooks
的子目录,其中将包含本章的所有说明书。然后,为该说明书创建一个名为installpkg
的子目录,并导航到该子目录。 -
在
installpkg
中,创建一个名为metadata.rb
的文件,其中包含以下代码。name "installpkg" version "0.1.0"
为简单起见,本章中的示例仅指定说明书名称和版本,但是
metadata.rb
可以包含各种说明书元数据。有关更多信息,请参阅关于说明书元数据。 注意
确保在初始化 Test Kitchen 之前创建
metadata.rb
;它会使用相应数据创建默认配置文件。 -
在
installpkg
中,运行kitchen init
,它会初始化 Test Kitchen 并安装默认的 Vagrant 驱动程序。 -
该
kitchen init
命令在 named 中创建YAML配置installpkg
文件.kitchen.yml
。在您常用的文本编辑器中打开 文件。.kitchen.yml
文件中包含platforms
部分,该部分指定在哪些系统上运行配方。Test Kitchen 创建一个实例,并在每个平台上运行指定的配方。注意
默认情况下,Test Kitchen 每次在一个平台上运行配方。如果您将
-p
参数添加到创建实例的任何命令中,则 Test Kitchen 将在每个平台上并行运行配方。对于此示例,一个平台已足够,因此请编辑
.kitchen.yml
以删除centos-6.4
平台。您的.kitchen.yml
文件现在应如下所示:--- driver: name: vagrant provisioner: name: chef_solo platforms: - name: ubuntu-12.04 suites: - name: default run_list: - recipe[installpkg::default] attributes:
Test Kitchen 仅运行处于
.kitchen.yml
运行列表中的那些配方。您可以使用[
格式来识别食谱,其中cookbook_name
::recipe_name
]recipe_name
省略.rb
扩展名。最初,.kitchen.yml
运行列表中包含说明书的默认配方installpkg::default
。那是您要实施的配方,因此您不必修改运行列表。 -
创建
installpkg
的子目录,该子目录名为recipes
。如果说明书中包含配方 (大部分均包含),则这些配方一定位于
recipes
子目录中。
现在,您可以将配方添加到说明书中,并使用 Test Kitchen 在实例上运行它。
运行配方
-
创建一个名为
default.rb
的文件 (其中包含本节开头的 Git 安装示例代码),并将该文件保存到recipes
子目录中。 -
在
installpkg
目录中,运行kitchen converge
。该命令会在 Vagrant 中启动一个新的 Ubuntu 实例,将您的说明书复制到实例中,并开始运行 Chef,以执行.kitchen.yml
运行列表中的配方。 -
要验证配方是否成功,请运行
kitchen login
,这将打开与实例的SSH连接。然后运行git --version
,以验证是否已成功安装 Git。要返回到您的工作站,请运行exit
。 -
完成后,运行
kitchen destroy
以关闭实例。下一个示例使用不同的说明书。
此示例是一个很好的入门方式,但它特别简单。其他软件包安装起来可能更复杂;您可能需要执行以下任意或所有操作:
-
创建和配置一个用户。
-
创建针对数据、日志等的一个或多个目录。
-
安装一个或多个配置文件。
-
为不同的操作系统指定不同的软件包名称或属性值。
-
启动一项服务,然后根据需要重新启动它。
以下示例描述了如何解决这些问题,并介绍了其他一些有用的操作。