使用创建 AWS OpsWorks for Puppet Enterprise 大师 CloudFormation - AWS OpsWorks

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

使用创建 AWS OpsWorks for Puppet Enterprise 大师 CloudFormation

重要

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

AWS OpsWorks for Puppet Enterprise 允许你在中运行 Pu ppet Enterpris e 服务器。 AWS您可以在大约 15 分钟内预配置一个 Puppet Enterprise Master 服务器。

从 2021 年 5 月 3 日起,Puppet Enterprise 将在其中存储一些 Puppet Enterprise OpsWorks AWS Secrets Manager有关更多信息,请参阅 与集成 AWS Secrets Manager

以下演练通过在中创建堆栈来帮助你在 Puppet Enterprise 中 OpsWorks 创建 Puppet 大师。 CloudFormation

先决条件

在创建新的 Puppet 大师之前,请在外部 OpsWorks 为 Puppet Enterprise 创建访问和管理人偶大师所需的资源。有关更多信息,请参阅本指南的“入门”部分的先决条件

如果要创建使用自定义域的服务器,则需要自定义域、证书和私有密钥。您必须在 CloudFormation 模板中为所有这三个参数指定值。有关、和CustomPrivateKey参数要求的更多信息 CustomDomainCustomCertificate,请参阅 OpsWorks CM API 参考CreateServer中的。

查看《CloudFormation 用户指南模板参考》的 “OpsWorks-CM” 部分,了解用于创建服务器的 CloudFormation 模板中支持的值和必填值。

在 CloudFormation中创建 Puppet Enterprise Master

本节介绍如何使用 CloudFormation 模板构建堆栈,从而为 Puppet Enterprise 主服务器创建一个 OpsWorks 。您可以使用 CloudFormation 控制台或 AWS CLI. 您可以使用示例 CloudFormation 模板来构建 Puppet Enterpr OpsWorks ise 服务器堆栈。请务必使用您自己的服务器名称、IAM 角色、实例配置文件、服务器描述、备份保留计数、维护选项和可选标签来更新示例模板。如果您的服务器将使用自定义域,则必须在 CloudFormation 模板中为 CustomDomainCustomCertificateCustomPrivateKey 参数指定值。有关这些选项的更多信息,请参阅本指南的“入门”部分的使用创建 Puppet Enterprise Master AWS 管理控制台

使用 CloudFormation (控制台)创建 Puppet Enterprise Master

  1. 登录 AWS 管理控制台 并在 https://console.aws.amazon.com/cloudformat ion 上打开 CloudFormation 控制台。

  2. 在 CloudFormation 主页上,选择创建堆栈

  3. Prerequisite - Prepare template (先决条件 – 准备模板) 中,如果您使用的是示例 CloudFormation 模板,请选择 Template is ready (模板已准备就绪)

  4. Specify template (指定模板) 中,选择模板的源。在本演练中,选择上传模板文件,然后上传用于创建 Puppet Enterprise 服务器的 CloudFormation 模板。浏览查找您的模板文件,然后选择 Next (下一步)

    CloudFormation 模板可以采用 YAML 或 JSON 格式。有一个示例 CloudFormation 模板可供您使用;请务必用自己的示例值替换示例值。您可以使用 CloudFormation 模板设计器来构建新模板或验证现有模板。有关如何执行此操作的更多信息,请参阅《CloudFormation 用户指南》中的CloudFormation Designer 界面概述

    CloudFormation “创建堆栈” 页面
  5. 指定详细信息 页面上,输入您的堆栈的名称。这将不会与您的服务器的名称相同,它仅仅是一个堆栈名称。在参数区域中,输入用于登录 Puppet Enterprise 控制台网页的管理员密码。该密码必须使用介于 8 和 32 个之间的 ASCII 字符。选择下一步

    在 “指定详细信息” 页面 CloudFormation
  6. 选项页面上,您可以向您使用堆栈创建的服务器添加标签,如果您尚未在您的模板中指定要使用的 IAM 角色,还可以选择用于创建资源的 IAM 角色。在指定选项之后,选择 Next (下一步)。有关高级选项(例如回滚触发器)的更多信息,请参阅《CloudFormation 用户指南》中的设置 CloudFormation 堆栈选项

  7. 审核页面上,审核您的选择。在准备好创建服务器堆栈时,选择创建堆栈

    在等待创建堆栈时, CloudFormation 请查看堆栈创建状态。如果堆栈创建失败,请查看控制台中显示的错误消息,以帮助您解决问题。有关对 CloudFormation 堆栈中的错误进行故障排除的更多信息,请参阅《CloudFormation 用户指南》中的排查错误

    服务器创建完成后,你的 Puppet Master 将 OpsWorks 在 Puppet Enterprise 的主页上可用,状态为在线。服务器联机之后,Puppet Enterprise 控制台在服务器的域上可用,位于以下格式的 URL 上:https://your_server_name-randomID.region.opsworks-cm.io

    注意

    如果您为服务器指定了自定义域、证书和私钥,请在企业的 DNS 管理工具中创建一个 CNAME 条目,该条目将您的自定义域映射到 Puppet Enterprise OpsWorks 为服务器自动生成的终端节点。在将生成的端点映射到自定义域值之前,无法管理服务器或连接到服务器的 Puppet Enterprise 管理网站。

    要获取生成的端点值,请在服务器联机后运行以下 AWS CLI 命令:

    aws opsworks describe-servers --server-name server_name

使用 CloudFormation (CLI) 创建 Puppet Enterprise Master

如果您的本地计算机尚未运行 AWS CLI,请 AWS CLI 按照 AWS 命令行界面用户指南中的安装说明下载并安装。本部分未介绍可以与 create-stack 命令结合使用的所有参数。有关 create-stack 参数的更多信息,请参阅 create-stack 参考 中的 AWS CLI

  1. 请务必完成为 Puppe OpsWorks t Enterprise 大师创建。先决条件

  2. 创建服务角色和实例配置文件。

    在您的账户中查找并复制服务角色。 ARNs

    aws iam list-roles --path-prefix "/service-role/" --no-paginate

    list-roles 命令的结果中,查找类似于以下内容的服务角色和实例配置文件条目。记下 ARNs服务角色和实例配置文件,然后将其添加到用于创建 Puppet 主服务器堆栈的 CloudFormation 模板中。

  3. 再次运行该create-stack命令 OpsWorks 为 Puppet Enterprise Master 创建。

    • stack_name替换为堆栈的名称。这是 CloudFormation 堆栈的名称,不是你的 Puppet 大师。Puppet master 名称是 CloudFormation 模板中 ServerName 的值。

    • template替换为模板文件的路径,并根据需要将扩展名yaml or json替换.json.yaml或。

    • 的值对--parameters应于 CreateServerAPI EngineAttributes中的值。对于 Puppet,以下是用户提供的用于创建服务器的引擎属性。r10k 引擎属性将你的 Puppet 主服务器连接到代码存储库以管理服务器的环境配置。有关 r10k 引擎属性的更多信息,请参阅 Puppet Enterprise 文档中的使用 r10k 来管理代码

      • PUPPET_ADMIN_PASSWORD,登录 Puppet Enterprise 控制台网页的管理员密码。密码必须使用 8 到 32 个 ASCII 字符,至少需要一个大写字母、一个小写字母、一个数字和一个特殊字符。

      • PUPPET_R10K_REMOTE,您控件存储库的 URL(例如 ssh://git@your.git-repo.com:user/control-repo.git)。指定 r10k remote 可打开 TCP 端口 8170。

      • PUPPET_R10K_PRIVATE_KEY。如果您使用的是私有 Git 存储库,请添加 PUPPET_R10K_PRIVATE_KEY 以指定一个 SSH URL 和一个 PEM 编码的私有 SSH 密钥。

    aws cloudformation create-stack --stack-name stack_name --template-body file://template.yaml or json --parameters ParameterKey=AdminPassword,ParameterValue="password"

    示例如下:

    aws cloudformation create-stack --stack-name "OpsWorksCMPuppetServerStack" --template-body file://opsworkscm-puppet-server.json --parameters ParameterKey=AdminPassword,ParameterValue="09876543210Ab#"

    以下示例将 r10k 引擎属性指定为参数,而模板中未提供这些属性。 CloudFormation 一个包含 r10k 引擎属性的示例模板-puppet-server-param-attributes.yaml,包含在示例 CloudFormation 模板中。

    aws cloudformation create-stack --stack-name MyPuppetStack --template-body file://puppet-server-param-attributes.yaml --parameters ParameterKey=AdminPassword,ParameterValue="superSecret1%3" ParameterKey=R10KRemote,ParameterValue="https://www.yourRemote.com" ParameterKey=R10KKey,ParameterValue="$(cat puppet-r10k.pem)"

    以下示例在 CloudFormation 模板中指定 r10k 引擎属性及其值;该命令只需指向模板文件即可。指定为 --template-body 的值的模板-puppet-server-in-file-attributes.yaml,包含在示例 CloudFormation 模板中。

    aws cloudformation create-stack --stack-name MyPuppetStack --template-body file://puppet-server-in-file-attributes.yaml
  4. (可选)要获取堆栈创建状态,请运行以下命令。

    aws cloudformation describe-stacks --stack-name stack_name
  5. 堆栈创建完成后,请继续执行下一节-使用初学者工具包配置 Puppet Master。如果堆栈创建失败,请查看控制台中显示的错误消息,以帮助您解决问题。有关对 CloudFormation 堆栈中的错误进行故障排除的更多信息,请参阅《CloudFormation 用户指南》中的故障排除