本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用创建 AWS OpsWorks for Puppet Enterprise 大师 AWS CloudFormation
重要
该 AWS OpsWorks for Puppet Enterprise 服务于 2024 年 3 月 31 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
AWS OpsWorks for Puppet Enterprise 允许你在中运行 Pu ppet Enterpris
从 2021 年 5 月 3 日起,Puppet Enterprise 将在其中存储一些 Puppet Enterprise OpsWorks AWS Secrets Manager有关更多信息,请参阅 与 AWS Secrets Manager 集成。
以下演练通过在中创建堆栈来帮助你在 Puppet Enterprise 中 OpsWorks 创建 Puppet 大师。 AWS CloudFormation
先决条件
在创建新的 Puppet 大师之前,请在外部 OpsWorks 为 Puppet Enterprise 创建访问和管理人偶大师所需的资源。有关更多信息,请参阅本指南的“入门”部分的先决条件 。
如果要创建使用自定义域的服务器,则需要自定义域、证书和私有密钥。您必须在 AWS CloudFormation 模板中为所有这三个参数指定值。有关、和CustomPrivateKey
参数要求的更多信息 CustomDomain
CustomCertificate
,请参阅 AWS OpsWorks CM API 参考CreateServer中的。
查看《AWS CloudFormation 用户指南模板参考》的 “OpsWorks-CM” 部分,了解用于创建服务器的 AWS CloudFormation 模板中支持的值和必填值。
在 AWS CloudFormation中创建 Puppet Enterprise Master
本节介绍如何使用 AWS CloudFormation 模板构建堆栈,从而为 Puppet Enterprise 主服务器创建一个 OpsWorks 。您可以使用 AWS CloudFormation 控制台或 AWS CLI. 您可以使用示例 AWS CloudFormation 模板来构建 Puppet Enterpr OpsWorks ise 服务器堆栈。请务必使用您自己的服务器名称、IAM 角色、实例配置文件、服务器描述、备份保留计数、维护选项和可选标签来更新示例模板。如果您的服务器将使用自定义域,则必须在 AWS CloudFormation 模板中为 CustomDomain
、CustomCertificate
和 CustomPrivateKey
参数指定值。有关这些选项的更多信息,请参阅本指南的“入门”部分的使用创建 Puppet Enterprise Master AWS Management Console。
主题
使用 AWS CloudFormation (控制台)创建 Puppet Enterprise Master
登录 AWS Management Console 并打开 AWS CloudFormation 控制台,网址为 https://console.aws.amazon.com/cloudformation
。 -
在 AWS CloudFormation 主页上,选择创建堆栈。
-
在 Prerequisite - Prepare template (先决条件 – 准备模板) 中,如果您使用的是示例 AWS CloudFormation 模板,请选择 Template is ready (模板已准备就绪)。
-
在 Specify template (指定模板) 中,选择模板的源。在本演练中,选择上传模板文件,然后上传用于创建 Puppet Enterprise 服务器的 AWS CloudFormation 模板。浏览查找您的模板文件,然后选择 Next (下一步)。
AWS CloudFormation 模板可以采用 YAML 或 JSON 格式。有一个示例 AWS CloudFormation 模板可供您使用;请务必用自己的示例值替换示例值。您可以使用 AWS CloudFormation 模板设计器来构建新模板或验证现有模板。有关如何执行此操作的更多信息,请参阅《AWS CloudFormation 用户指南》中的AWS CloudFormation Designer 界面概述。
-
在 指定详细信息 页面上,输入您的堆栈的名称。这将不会与您的服务器的名称相同,它仅仅是一个堆栈名称。在参数区域中,输入用于登录 Puppet Enterprise 控制台网页的管理员密码。该密码必须使用介于 8 和 32 个之间的 ASCII 字符。选择下一步。
-
在选项页面上,您可以向您使用堆栈创建的服务器添加标签,如果您尚未在您的模板中指定要使用的 IAM 角色,还可以选择用于创建资源的 IAM 角色。在指定选项之后,选择 Next (下一步)。有关高级选项(例如回滚触发器)的更多信息,请参阅《AWS CloudFormation 用户指南》中的设置 AWS CloudFormation 堆栈选项。
-
在审核页面上,审核您的选择。在准备好创建服务器堆栈时,选择创建堆栈。
在等待创建堆栈时, AWS CloudFormation 请查看堆栈创建状态。如果堆栈创建失败,请查看控制台中显示的错误消息,以帮助您解决问题。有关对 AWS CloudFormation 堆栈中的错误进行故障排除的更多信息,请参阅《AWS CloudFormation 用户指南》中的排查错误。
服务器创建完成后,您的 Puppet 大师将在 Puppet Enterprise 的主页上可用,状态 OpsWorks 为在线。服务器联机之后,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
使用 AWS CloudFormation (CLI) 创建 Puppet Enterprise Master
如果您的本地计算机尚未运行 AWS CLI,请 AWS CLI 按照 AWS 命令行界面用户指南中的安装说明下载并安装。本部分未介绍可以与 create-stack 命令结合使用的所有参数。有关 create-stack 参数的更多信息,请参阅 create-stack 参考 中的 AWS CLI 。
-
请务必完成为 Puppe OpsWorks t Enterprise 大师创建。先决条件
-
创建服务角色和实例配置文件。 AWS OpsWorks 提供了一个可用于创建两者的 AWS CloudFormation 模板。运行以下 AWS CLI 命令创建一个 AWS CloudFormation 堆栈,用于为您创建服务角色和实例配置文件。
aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM
创建 AWS CloudFormation 完堆栈后,在您的账户中查找并复制服务角色的 ARN。
aws iam list-roles --path-prefix "/service-role/" --no-paginate
在
list-roles
命令的结果中,查找类似于以下内容的服务角色和实例配置文件条目。记下服务角色和实例配置文件的 ARN,然后将其添加到用于创建 Puppet 主服务器堆栈的 AWS CloudFormation 模板中。{ "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
-
再次运行该create-stack命令 OpsWorks 为 Puppet Enterprise Master 创建。
-
将
stack_name
替换为您的堆栈的名称。这是 AWS CloudFormation 堆栈的名称,不是你的 Puppet 大师。Puppet master 名称是 AWS CloudFormation 模板中ServerName
的值。 -
将
template
替换为您的模板文件的路径,并将扩展名yaml 或 json
相应地替换为.yaml
或.json
。 -
的值对
--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 引擎属性指定为参数,而模板中未提供这些属性。 AWS CloudFormation 一个包含 r10k 引擎属性的示例模板-
puppet-server-param-attributes.yaml
,包含在示例 AWS 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)"
以下示例在 AWS CloudFormation 模板中指定 r10k 引擎属性及其值;该命令只需指向模板文件即可。指定为
--template-body
的值的模板-puppet-server-in-file-attributes.yaml
,包含在示例 AWS CloudFormation 模板中。aws cloudformation create-stack --stack-name MyPuppetStack --template-body file://puppet-server-in-file-attributes.yaml
-
-
(可选)要获取堆栈创建状态,请运行以下命令。
aws cloudformation describe-stacks --stack-name
stack_name
-
堆栈创建完成后,请继续执行下一节-使用初学者工具包配置 Puppet Master。如果堆栈创建失败,请查看控制台中显示的错误消息,以帮助您解决问题。有关对 AWS CloudFormation 堆栈中的错误进行故障排除的更多信息,请参阅《AWS CloudFormation 用户指南》中的故障排除。