本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Puppet Enterp OpsWorks rise 入门
重要
该 AWS OpsWorks for Puppet Enterprise 服务于 2024 年 3 月 31 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre
OpsWorks for Puppet Enterprise 允许你在中运行 Puppet Enter
从 2021 年 5 月 3 日起,Puppet Enterprise 将在其中存储一些 Puppet Enterprise OpsWorks AWS Secrets Manager有关更多信息,请参阅 集成 AWS Secrets Manager。
以下演练可帮助你在 Puppet Enterprise 中 OpsWorks 创建第一个 Puppet 大师。
先决条件
在开始之前,您必须完成以下前提条件:
安装 Puppet 开发工具包
-
从 Puppet 网站下载 Puppet 开发工具包
,该工具包适合您的本地计算机的操作系统。 -
安装 Puppet 开发工具包。
-
将 Puppet 开发工具包添加到本地计算机的
PATH
变量。-
在 Linux 或 macOS 操作系统上,您可以通过在 Bash shell 中运行以下命令来将 Puppet 开发工具包添加到
PATH
变量。echo 'export PATH=/opt/puppetlabs/pdk/bin/pdk:$PATH' >> ~/.bash_profile && source ~/.bash_profile
-
在基于 Windows 的操作系统上,可以在 PowerShell 会话中或通过 “系统属性” 访问的 “环境
PATH
变量” 对话框中使用以下.NET Framework 命令将 Puppet 开发套件添加到变量中。您可能需要以管理员身份运行 PowerShell 会话才能运行以下命令。[Environment]::SetEnvironmentVariable("Path","
new path value
","Machine")
-
安装 Puppet Enterprise 客户端工具
Puppet Enterprise (PE) 客户端工具是一组命令行工具,可让您从工作站访问 Puppet Enterprise 服务。这些工具可安装在许多不同的操作系统上,也可以安装在使用 Puppet 管理的节点上。有关支持这些工具的操作系统以及如何安装这些工具的信息,请参阅 Puppet Enterprise 文档中的安装 PE 客户端工具
设置 Git 控制存储库
您必须先在 Git 中配置一个控制存储库来存储 Puppet 模块和类并对它们进行变更管理,然后才能启动 Puppet Master。在启动 Puppet Enterprise Master 服务器的步骤中,需要指向 Git 存储库的 URL 以及用于访问该存储库的 HTTPS 或 SSH 账户信息。有关如何设置 Puppet Enterprise Master 将使用的控制存储库的更多信息,请参阅设置控制存储库control-repo
示例存储库的自述文件中找到控制存储库
├── LICENSE ├── Puppetfile ├── README.md ├── environment.conf ├── hieradata │ ├── common.yaml │ └── nodes │ └── example-node.yaml ├── manifests │ └── site.pp ├── scripts │ ├── code_manager_config_version.rb │ ├── config_version.rb │ └── config_version.sh └── site ├── profile │ └── manifests │ ├── base.pp │ └── example.pp └── role └── manifests ├── database_server.pp ├── example.pp └── webserver.pp
使用设置存储库 CodeCommit
您可以使用创建新存储库 CodeCommit。有关 CodeCommit 如何使用创建控制存储库的更多信息,请参阅本指南可选:用 AWS CodeCommit 作 Puppet r10k 远程控制存储库中的。有关如何开始使用 Git 的更多信息 CodeCommit,请参阅 AWS 入门 CodeCommit。要 OpsWorks 为您的存储库授权 Puppet Enterprise 服务器,请将该AWSCodeCommitReadOnly
策略附加到您的 IAM 实例配置文件角色。
设置 VPC
你的 OpsWorks Puppet Enterprise 主服务器必须在亚马逊 Virtual Private Cloud 中运行。您可以将其添加到现有 VPC、使用默认 VPC,或者创建新 VPC 以包含服务器。有关创建 Amazon VPC 以及如何创建新 VPC 的信息,请参阅 Amazon VPC 入门指南。
如果您创建自己的 VPC,或者使用现有的 VPC,则它应具有以下设置或属性。
-
VPC 应具有至少一个子网。
如果您的 OpsWorks Puppet Enterprise 主服务器可以公开访问,请将子网设为公有子网,然后启用自动分配公有 IP。
-
应该启用 DNS resolution。
-
在子网上,启用 Auto-assign public IP。
如果您不熟悉创建 VPC 或在其中运行实例,则可以使用为您 AWS OpsWorks 提供的 AWS CloudFormation 模板运行以下 AWS CLI 命令来创建具有单个公有子网的 VPC。如果您更喜欢使用 AWS Management Console,也可以将模板
aws cloudformation create-stack --stack-name OpsWorksVPC --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-vpc.yaml
设置 EC2 密钥对(可选)
对于 Puppet 服务器的典型管理,不需要也不建议使用 SSH 连接;您可以使用 AWS Management Console 和 AWS CLI 命令在 Puppet 服务器上执行许多管理任务。
如果您丢失或者希望更改 Puppet Enterprise 基于 Web 的控制台的登录密码,则需要使用 EC2 密钥对通过 SSH 连接到您的服务器。您可以使用现有的密钥对,或者创建新的密钥对。有关如何创建新 EC2 密钥对的更多信息,请参阅 Amazon EC2 密钥对。
如果您不需要 EC2 密钥对,那么您已准备好创建 Puppet Enterprise Master。
使用自定义域的先决条件(可选)
您可以在自己的域上设置 Puppet Enterprise 主服务器,同时在自定义域中指定一个公有终端节点用作服务器的终端节点。当您使用自定义域时,需要执行以下所有操作,如本节中详细介绍。
设置自定义域
要在自己的自定义域上运行 Puppet Enterprise 主服务器,您需要服务器的公有终端节点,例如 https://aws.my-company.com
。如果指定自定义域,还必须提供证书和私有密钥,如前面各节所述。
要在创建服务器后访问此服务器,请在首选 DNS 服务中添加 CNAME DNS 记录。此记录必须将自定义域指向由 Puppet 主服务器创建过程生成的终端节点(服务器的 Endpoint
属性的值)。如果服务器使用自定义域,则无法使用生成的 Endpoint
值访问服务器。
获取证书
要在您自己的自定义域上设置您的 Puppet 主服务器,您需要 PEM 格式的 HTTPS 证书。这可以是单个自签名证书或证书链。在完成 Create a Puppet Enterprise Master (创建 Puppet Enterprise 主服务器) 工作流时,如果您指定此证书,则还必须提供自定义域和私有密钥。
以下是证书值的要求:
-
您可以提供自签名的自定义证书或完整的证书链。
-
证书必须是有效的 X509 证书或 PEM 格式的证书链。
-
证书在上传时必须是有效的。您不能在证书有效期开始(证书的
NotBefore
日期)之前或证书有效期到期(证书的NotAfter
日期)之后使用证书。 -
证书的公用名称或使用者备用名称 (SAN)(如果存在)必须与自定义域值匹配。
-
证书必须与 Custom private key (自定义私有密钥) 字段的值匹配。
获取私有密钥
要在自己的自定义域上设置 Puppet 主服务器,您需要一个 PEM 格式的私有密钥,以便使用 HTTPS 连接到服务器。私有密钥不得加密;无法使用密码或密码短语保护它。如果指定自定义私有密钥,则还必须提供自定义域和证书。