Pupp OpsWorks et 企业版故障排除 - AWS OpsWorks

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

Pupp OpsWorks et 企业版故障排除

重要

该 AWS OpsWorks for Puppet Enterprise 服务于 2024 年 3 月 31 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。有关如何迁移现有 Puppet Enterprise 服务器的信息,请参阅如何将 Puppe OpsWorks t Enterprise 服务器迁移到亚马逊弹性计算云 (Amazon EC2)。如果您对迁移有疑问,请通过 re AWS : Post 或通过 Pre mium Su AWS pp ort 与 AWS Support 团队联系。

本主题包含 Puppet Enterprise 问题的一些常见 OpsWorks 问题以及这些问题的建议解决方案。

一般故障排除技巧

如果您无法创建或使用 Puppet Master,可查看错误消息或日志来帮助您对问题进行故障排除。下列任务描述了在您排除 Puppet Master 问题故障时通常应从哪些方面入手。有关特定错误和解决方案的信息,请参阅本主题的针对特定错误进行故障排除部分。

  • 使用 f OpsWorks or Puppet Enterprise 控制台在 Puppet Master 无法启动时查看错误消息。在 Puppet Master 属性页面上,与服务器启动和运行相关的错误消息将显示在页面顶部。 OpsWorks 用于创建 Puppet Master 的 Puppet Enterprise 或 Amazon EC2 服务可能会出现错误。 AWS CloudFormation在属性页面上,您还可查看正在运行的服务器上发生的事件,其中可能会包含故障事件消息。

  • 要帮助解决 EC2 问题,请通过使用 SSH 连接到您的服务器实例并查看日志。EC2 实例日志存储在 /var/log/aws/opsworks-cm 目录中。这些日志会捕获 Puppet Enterprise 启动 Puppet Master 时的 OpsWorks 命令输出。

针对特定错误进行故障排除

服务器处于连接丢失状态

问题:服务器的状态显示为连接丢失

原因:这种情况最常发生在外部实体对适用于 Pupp AWS OpsWorks et Enterprise OpsWorks 的服务器或其支持资源进行更改时。 AWS OpsWorks 无法连接到处于连接中断状态的 Puppet Enterprise 服务器来处理维护任务,例如创建备份、应用操作系统补丁或更新 Puppet。因此,您的服务器可能缺少重要更新,容易受到安全问题的影响,或者无法按预期运行。

解决方案:尝试以下步骤来恢复服务器的连接。

  1. 请确保您的服务角色具有所有必需的权限。

    1. 在服务器的设置页面上,在网络和安全中,选择服务器正在使用的服务角色的链接。这将将服务角色打开以供在 IAM 控制台中查看。

    2. 权限选项卡上,确认 AWSOpsWorksCMServiceRole 是否在权限策略列表中。如果未列出该托管策略,请手动将 AWSOpsWorksCMServiceRole 托管策略添加到角色中。

    3. 信任关系选项卡上,验证服务角色是否具有信任 opsworks-cm.amazonaws.com 服务代表您代入角色的信任策略。有关如何对角色使用信任策略的更多信息,请参阅修改角色(控制台)或 AWS 安全博客文章《如何在 IAM 角色中使用信任策略》

  2. 请确保您的实例配置文件具有所有必需的权限。

    1. 在服务器的设置页面上,在网络和安全中,选择服务器正在使用的实例配置文件的链接。这将打开实例配置文件以在 IAM 控制台中查看。

    2. 权限选项卡上,确认 AmazonEC2RoleforSSMAWSOpsWorksCMInstanceProfileRole 是否在权限策略列表中。如果未列出其中一个或两个托管策略,请手动将这些托管策略添加到角色中。

    3. 信任关系选项卡上,验证服务角色是否具有信任 ec2.amazonaws.com 服务代表您代入角色的信任策略。有关如何对角色使用信任策略的更多信息,请参阅修改角色(控制台)或 AWS 安全博客文章《如何在 IAM 角色中使用信任策略》

  3. 在 Amazon EC2 控制台中,确保您与 OpsWorks 适用于 Puppet Enterprise 服务器的区域位于同一区域,然后重启您的服务器正在使用的 EC2 实例。

    1. 选择名为 aws-opsworks-cm-instance- 服务器名称的 EC2 实例。

    2. 实例状态菜单,选择启动实例

    3. 等待最多 15 分钟让您的服务器重新启动并完全联机。

  4. 在 f OpsWorks or Puppet Enterprise 控制台的服务器详细信息页面上,验证服务器状态现在是否正

如果执行上述步骤后服务器状态仍为连接丢失,请尝试以下方法之一。

服务器创建失败,并返回“requested configuration is currently not supported”消息

问题:您尝试创建一台 Puppet Enterprise 服务器,但服务器创建失败,并返回与“The requested configuration is currently not supported。Please check the documentation for supported configurations.”类似的错误消息。

原因:可能为 Puppet Master 指定了不支持的实例类型。如果您选择在具有非默认租赁的 VPC 中创建 Puppet 服务器,例如适用于专用实例的 VPC,则指定 VPC 内的所有实例也必须为专用或主机租赁。由于某些实例类型 (如 t2) 只适用于默认租赁,指定 VPC 可能不支持 Puppet Master 实例类型,因此服务器创建失败。

解决方案:如果您选择具有非默认租赁的 VPC,请使用 m4 实例类型,此类型可以支持专用租赁。

无法创建服务器的 Amazon EC2 实例

问题:服务器创建失败,并返回类似以下的错误消息:“The following resource(s) failed to create: [EC2Instance]。Failed to receive 1 resource signal(s) within the specified duration.”

原因:很可能的原因是 EC2 实例没有网络访问权限。

解决方案:确保实例具有出站 Internet 访问权限,并且 AWS 服务代理能够发出命令。请确保您的 VPC (具有单一公有子网的 VPC) 已启用 DNS resolution,并且您的子网已启用 Auto-assign Public IP 设置。

服务角色错误阻止服务器创建

问题:服务器创建失败,并显示一条错误消息,上面写着 “未授权执行 sts:” AssumeRole。

原因:当您使用的服务角色缺少足够的权限创建新服务器时,可能会出现此问题。

解决方案:打开 Puppet Enterprise 控制台;使用控制台生成新的服务角色和实例配置文件角色。 OpsWorks 如果您希望使用自己的服务角色,请将AWSOpsWorksCMServiceRole策略附加到该角色。验证 opsworks-cm.amazonaws.com 在角色的 Trust Relationships 中随服务一起列出。验证与 Puppet 主服务器关联的服务角色是否已附加AWSOpsWorksCMServiceRole托管策略。

超出弹性 IP 地址限制

问题:服务器创建失败,并返回错误消息,指示“The following resource(s) failed to create: [EIP, EC2Instance]。Resource creation cancelled, the maximum number of addresses has been reached.”

原因:当您的账户已使用最大数量的弹性 IP (EIP) 地址时,将会出现此问题。默认的 EIP 地址数量限制为 5。

解决方案:您可以释放现有 EIP 地址或删除您的账户未使用的 EIP 地址,也可以联系 Cust AWS omer Support 以增加与您的账户关联的 EIP 地址的限制。

无人参与节点关联失败

问题:新的 Amazon EC2 节点的无人参与或自动关联失败。Puppet Enterprise 控制面板中未显示应已添加到 Puppet Master 的节点。

原因:当您未将 IAM 角色设置为允许 opsworks-cm API 调用与新的 EC2 实例通信的实例配置文件时,可能会出现此问题。

解决方案:将一个策略附加到您的 EC2 实例配置文件以允许 AssociateNodeDescribeNodeAssociationStatus API 调用与 EC2 一起工作,如 OpsWorks 为 Puppet Enterprise 自动添加节点中所述。

系统维护失败

AWS OpsWorks CM 每周执行系统维护,以确保 AWS经过测试的最新版本的 Puppet Server(包括安全更新)始终在 Puppet Enterpr OpsWorks ise 服务器上运行。如果由于任何原因导致系统维护失败,则 AWS OpsWorks CM 会通知您该故障。有关系统维护的更多信息,请参阅 Puppet Enterp OpsWorks rise 系统维护中

本节介绍可能的失败原因并提出解决方案。

服务角色或实例配置文件错误会阻止系统维护

问题:系统维护失败,并显示一条错误消息,上面写着 “未授权执行 sts:AssumeRole” 或类似的权限错误消息。

原因:当您使用的服务角色或实例配置文件缺少在服务器上执行系统维护的足够权限时,可能会发生这种情况。

解决方案:确保您的服务角色和实例配置文件具有所有必需的权限。

  1. 请确保您的服务角色具有所有必需的权限。

    1. 在服务器的设置页面上,在网络和安全中,选择服务器正在使用的服务角色的链接。这将将服务角色打开以供在 IAM 控制台中查看。

    2. 权限选项卡上,验证 AWSOpsWorksCMServiceRole 是否已附加到该服务角色。如果 AWSOpsWorksCMServiceRole 未列出,则将此策略添加到角色。

    3. 验证 opsworks-cm.amazonaws.com 在角色的 Trust Relationships 中随服务一起列出。有关如何对角色使用信任策略的更多信息,请参阅修改角色(控制台)或 AWS 安全博客文章《如何在 IAM 角色中使用信任策略》

  2. 请确保您的实例配置文件具有所有必需的权限。

    1. 在服务器的设置页面上,在网络和安全中,选择服务器正在使用的实例配置文件的链接。这将打开实例配置文件以在 IAM 控制台中查看。

    2. 权限选项卡上,确认 AmazonEC2RoleforSSMAWSOpsWorksCMInstanceProfileRole 是否在权限策略列表中。如果未列出其中一个或两个托管策略,请手动将这些托管策略添加到角色中。

    3. 信任关系选项卡上,验证服务角色是否具有信任 ec2.amazonaws.com 服务代表您代入角色的信任策略。有关如何对角色使用信任策略的更多信息,请参阅修改角色(控制台)或 AWS 安全博客文章《如何在 IAM 角色中使用信任策略》

其他帮助和支持

如果本主题没有描述您的特定问题,或者您已尝试本主题中的建议,但问题仍然存在,请访问 AWS OpsWorks 论坛

您也可访问 AWS Support Center 。 AWS 支持中心是创建和管理 AWS 支持案例的中心。Su AWS pport Center 还包括指向其他有用资源的链接,例如论坛、技术常见问题解答、服务运行状况和 AWS Trusted Advisor。