使用建立 AWS OpsWorks for Puppet Enterprise 主版 AWS CloudFormation - AWS OpsWorks

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用建立 AWS OpsWorks for Puppet Enterprise 主版 AWS CloudFormation

重要

該 AWS OpsWorks for Puppet Enterprise 服務於 2024 年 3 月 31 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post 或透過進AWS 階 Support 與 AWS Support 團隊聯絡。

AWS OpsWorks for Puppet Enterprise 可讓您在中執行傀儡企業伺服器 AWS。只要約 15 分鐘就能佈建 Puppet Enterprise 主伺服器。

從 2021 年 5 月 3 日起, OpsWorks 針對 Puppet 企業將一些傀儡企業伺服器屬性儲存在中 AWS Secrets Manager。如需詳細資訊,請參閱 整合 AWS Secrets Manager

下列逐步解說可協助您在中建立堆疊,以 OpsWorks 便在中為 Puppet 企業建立 Puppet 主版 AWS CloudFormation。

必要條件

在您建立新的 Puppet 主機之前,請在 Puppet 企業以外建立您需要存取和管理 Puppet 主機的資源。 OpsWorks 如需詳細資訊,請參閱本指南中「入門」一節的必要條件

如果您要建立使用自訂網域的伺服器,您需要自訂網域、憑證和私密金鑰。您必須在 AWS CloudFormation 範本中為這三個參數指定值。如需有關CustomDomainCustomCertificate和參數需求的詳細資訊,請CustomPrivateKey參閱 AWS OpsWorks CM API 參考CreateServer中的。

檢閱使用AWS CloudFormation 者指南範本參考的 OpsWorks-CM 部分,以瞭解您用來建立伺服器之 AWS CloudFormation 範本中支援的值和必要值。

在 AWS CloudFormation中建立 Puppet Enterprise 主伺服器

本節說明如何使用 AWS CloudFormation 範本建立堆疊,以建立 Puppet 企業主要伺服器的堆疊。 OpsWorks 您可以使用主 AWS CloudFormation 控台或 AWS CLI. 您可以使用AWS CloudFormation 範例範本來建置 Puppet 企業伺服器堆疊。 OpsWorks 請務必使用您自己的伺服器名稱、IAM 角色、執行個體設定檔、伺服器說明、備份保留計數、維護選項和選用標籤來更新範例範本。如果您的伺服器將使用自訂網域,您必須在 AWS CloudFormation 範本中指定 CustomDomainCustomCertificateCustomPrivateKey 參數的值。如需有關這些選項的詳細資訊,請參閱本指南「入門」一節的使用建立 Puppet 企業主機 AWS Management Console

使用 AWS CloudFormation (主控台) 建立 Puppet 企業主機

  1. 請登入 AWS Management Console 並開啟 AWS CloudFormation 主控台,網址為 https://console.aws.amazon.com/cloudformation

  2. 在 AWS CloudFormation 首頁上,選擇 [建立堆疊]。

  3. Prerequisite - Prepare template (先決條件 - 準備範本)中,如果您使用的是 範例 AWS CloudFormation 範本,請選擇 Template is ready (範本備妥)

  4. Specify template (指定範本) 中,請選擇範本的來源。對於本逐步解說,請選擇 [上傳範本檔案],然後上傳建立 Puppet Enterprise 伺服器的 AWS CloudFormation 範本。瀏覽您的範本檔案,然後選擇 Next (下一步)

    AWS CloudFormation 範本可以是 YAML 或 JSON 格式。您可以使用AWS CloudFormation 範例範本;請務必使用您自己的範例值來取代範例值。您可以使用 AWS CloudFormation 範本設計工具來建立新範本或驗證現有範本。若要取得有關如何執行此操作的更多資訊,請參閱《AWS CloudFormation 使用指南》中的AWS CloudFormation 設計師介面概述

    CloudFormation 建立堆疊頁面
  5. Specify stack details (指定堆疊詳細資訊) 頁面上,輸入堆疊的名稱。這個名稱不會與您的伺服器名稱相同,這只是堆疊名稱。在 Parameters (參數) 區域中,輸入用於登入 Puppet Enterprise 網頁的管理員密碼。此密碼必須使用 8 到 32 個 ASCII 字元。選擇下一步

    「指定詳細資訊」頁 CloudFormation
  6. 在 [選] 頁面上,您可以將標籤新增到使用堆疊建立的伺服器,如果尚未指定要在範本中使用的 IAM 角色,則可以選擇 IAM 角色來建立資源。指定選項完成後,選擇 Next (下一步)。若要取得有關進階選項 (例如回復觸發器) 的詳細資訊,請參閱《AWS CloudFormation 使用指南》中的〈設定 AWS CloudFormation 堆疊

  7. Review (檢閱) 頁面上,檢視您的選擇。當您準備好建立伺服器堆疊時,請選擇 Create (建立)

    當您等待 AWS CloudFormation 建立堆疊時,請檢視堆疊建立狀態。如果堆疊建立失敗,則檢閱顯示在主控台中的錯誤訊息,以協助您解決問題。如需疑難排解 AWS CloudFormation 堆疊中錯誤的詳細資訊,請參閱AWS CloudFormation 使用者指南中的疑難排解錯誤

    伺服器建立完成後,您的 Puppet 主版可在 OpsWorks Puppet 企業版首頁上使用,其狀態為上。伺服器上線之後,伺服器的網域會提供 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 企業主機

如果您的本機電腦尚未執行 AWS CLI,請 AWS CLI 按照 AWS 命令列界面使用者指南中的安裝指示下載並安裝。本節不會說明您可以搭配 create-stack 命令使用的所有參數。如需 create-stack 參數的詳細資訊,請參閱「 參考」create-stack中的 AWS CLI

  1. 請務必完成用必要條件於創建 OpsWorks Puppet 企業主機。

  2. 建立服務角色和執行個體設定檔。 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" }
  3. 再次執行create-stack命令, OpsWorks 為 Puppet 企業主機建立。

    • stack_name 更換成您的堆疊名稱。這是 AWS CloudFormation 堆疊的名稱,而不是您的傀儡主機。Puppet 主伺服器名稱就是 AWS CloudFormation 範本內 ServerName 的值。

    • template 更換成您的範本檔案路徑,並視情況,將副檔名yaml 或 json 改成 .yaml.json

    • 的值對--parameters應於EngineAttributes來自 CreateServerAPI。處理 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 遠端開啟 TCP 連接埠 8170。

      • PUPPET_R10K_PRIVATE_KEY。 如果您使用的是私人 Git 儲存庫,請新增 PUPPET_R10K_PRIVATE_KEY 來指定安全殼層網址和一個 PEM 編碼的私密安全殼層金鑰。

    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-bodypuppet-server-in-file-attributes.yaml 值的範本,則包含於範例 AWS 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 主伺服器。如果堆疊建立失敗,則檢閱顯示在主控台中的錯誤訊息,以協助您解決問題。如需疑難排解 AWS CloudFormation 堆疊中錯誤的詳細資訊,請參閱AWS CloudFormation 使用者指南中的疑難排解錯誤