本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 Puppet Enterprise 主伺服器
重要
該 AWS OpsWorks for Puppet Enterprise 服務於 2024 年 3 月 31 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post
您可以使用 Puppet 企業主控台 OpsWorks 建立傀儡主控台,或 AWS CLI.
使用建立 Puppet 企業主機 AWS Management Console
請登入 AWS Management Console 並開啟 AWS OpsWorks 主控台,網址為 https://console.aws.amazon.com/opsworks/
。 -
在 AWS OpsWorks 首頁上, OpsWorks 針對 Puppet 企業選擇移至。
-
在 OpsWorks Puppet 企業首頁上,選擇建立 Puppet 企業伺服器。
-
在 Set name, region, and type (設定名稱、區域和類型) 頁面上,指定您的伺服器名稱。Puppet 主伺服器名稱最多可包含 40 個字元、必須以字母開頭,而且只能包含英數字元和破折號。選取支援的區域,然後選擇支援您想要管理之節點數目的執行個體類型。如有需要,您可以在建立伺服器之後變更執行個體類型。在本逐步解說中,我們將在美國西部 (奧勒岡) 區域建立 m5.xlarge 執行個體類型。選擇下一步。
-
在 Configure server (設定伺服器) 頁面上,保留 SSH key (SSH 金鑰) 下拉式清單中的預設選項,除非您想要指定金鑰對名稱。在「設定傀儡程式碼管理員」區域的 r10k 遠端欄位中,指定 Git 遠端的有效安全殼層或 HTTPS 網址。在 r10k 私密金鑰欄位中,貼上 AWS OpsWorks 可用來存取 r10k 遠端儲存庫的 SSH 私密金鑰。當您建立私有儲存庫時這是由 Git 所提供,但如果您使用 HTTPS 身分驗證來存取控制儲存庫則非必要。選擇下一步。
-
保留 Specify server endpoint (指定伺服器端點) 中的預設值 Use an automatically-generated endpoint (使用自動產生的端點),然後選擇 Next (下一步),除非您希望伺服器位於您自己的自訂網域中。若要設定自訂網域,請繼續下一個步驟。
-
若要使用自訂網域,請在 Specify server endpoint (指定伺服器端點) 下拉式清單中選擇 Use a custom domain (使用自訂網域)。
-
在 Fully qualified domain name (FQDN) (完整網域名稱 (FQDN)) 中指定 FQDN。您必須擁有想要使用的網域名稱。
-
在 SSL certificate (SSL 憑證) 中貼上整個 PEM 格式憑證,開頭為
–––--BEGIN CERTIFICATE-----
且結尾為–––--END CERTIFICATE-----
。SSL 憑證主體必須符合您在上個步驟輸入的 FQDN。在憑證之前和之後移除任何額外的資料行。 -
在 SSL private key (SSL 私密金鑰) 中貼上整個 RSA 私密金鑰,開頭為
–––--BEGIN RSA PRIVATE KEY-----
且結尾為–––--END RSA PRIVATE KEY-----
。SSL 私密金鑰必須符合您在上個步驟的 SSL 憑證中輸入的公開金鑰。在私密金鑰之前和之後刪除任何額外的資料行。選擇下一步。
-
-
在 [設定進階設定] 頁面的 [網路和安全性] 區域中,選擇 VPC、子網路以及一或多個安全性群組。 AWS OpsWorks 如果您還沒有要使用的安全性群組、服務角色和執行個體設定檔,可以為您產生安全性群組、服務角色和執行個體設定檔。您的伺服器可以是多個安全群組的成員。離開此頁面之後,您將無法變更 Puppet 主伺服器的網路與安全設定。
-
在 System maintenance (系統維護) 區段中,將日和小時設為您希望開始系統維護的時間。因為您應預期伺服器在系統維護期間離線,請選擇一般工作時間內伺服器需求較低的時間。
需要維護時段。您可以使用 AWS Management Console、 AWS CLI或 API 來變更開始日期和稍後的時間。
-
設定備份。預設會啟用自動備份。設定要開始自動備份的偏好頻率和小時數,並設定要存放在 Amazon 簡單儲存服務中的備份世代數量。最多可以保留 30 個備份;當達到上限時, OpsWorks Puppet Enterprise 會刪除最舊的備份,以騰出空間供新備份使用。
-
(選用) 在 Tags (標籤) 中,將標籤新增至伺服器和相關資源,例如 EC2 執行個體、彈性 IP 地址、安全群組、S3 儲存貯體和備份。如需標記 Puppet 企業伺服器的詳細資訊,請參閱在 AWS OpsWorks for Puppet Enterprise 資源上使用標籤。 OpsWorks
-
當您完成設定進階設定時,選擇 Next (下一步)。
-
在 Review (檢閱) 頁面上,檢視您的選擇。當您準備好建立伺服器時,選擇 Launch (啟動)。
等待建立 Puppet 主 AWS OpsWorks 機時,請繼續下載入門套件使用入門套件設定 Puppet 主伺服器和 Puppet 企業主控台認證。不要等到您的伺服器上線,再下載這些項目。
伺服器建立完成後,您的 Puppet 主版可在 OpsWorks Puppet 企業版首頁上使用,其狀態為線上。伺服器上線之後,伺服器的網域會提供 Puppet Enterprise 主控台,URL 格式如下:
https://
。your_server_name
-randomID
.region
.opsworks-cm.io
使用建立 Puppet 企業主機 AWS CLI
重要
該 AWS OpsWorks for Puppet Enterprise 服務於 2024 年 3 月 31 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post
透過執行 AWS CLI 命令建立 Puppet 企業主要伺服器,與在主控台中建立伺服器不同。 OpsWorks 如果您未指定要使用的現有服務角色和安全性群組,請在主控台中為您 AWS OpsWorks 建立服務角色和安全性群組。在中 AWS CLI,如果您未指定安全性群組,但不會自動建立服務角色,則 AWS OpsWorks
可以為您建立安全性群組;您必須提供服務角色 ARN 做為create-server
命令的一部分。在主控台中建立 Puppet 主機時 AWS OpsWorks ,您會下載 Puppet Enterprise 主控台的入門套件和登入認證。因為在使用建立 Puppet Enterprise 主機版時無法執行此操作 AWS CLI,因此您可以使用 JSON 處理公用程式,在 Puppet Enterprise 主機的新 OpsWorks 主機上線後,從create-server
命令的結果中取得登入認證和入門套件。 OpsWorks
如果您的本機電腦尚未執行 AWS CLI,請 AWS CLI 按照 AWS 命令列界面使用者指南中的安裝指示下載並安裝。本節不會說明您可以搭配 create-server
命令使用的所有參數。如需 create-server
參數的詳細資訊,請參閱「 參考」create-server
中的 AWS CLI
。
-
請務必完成必要條件。若要建立您的 Puppet 主伺服器,您需要子網路 ID,因此您必須具備 VPC。
-
建立服務角色和執行個體設定檔。 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 項目。請記下服務角色 ARN。您需要這些值,才能建立您的 Puppet Enterprise 主伺服器。{ "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" }
-
在您的帳戶中,找出並複製執行個體描述檔的 ARN。
aws iam list-instance-profiles --no-paginate
在
list-instance-profiles
命令的結果中,尋找類似如下的執行個體描述檔 ARN 項目。請記下執行個體描述檔 ARN。您需要這些值,才能建立您的 Puppet Enterprise 主伺服器。{ "Path": "/", "InstanceProfileName": "aws-opsworks-cm-ec2-role", "InstanceProfileId": "EXAMPLEDC6UR3LTUW7VHK", "Arn": "arn:aws:iam::123456789012:instance-profile/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "Roles": [ { "Path": "/service-role/", "RoleName": "aws-opsworks-cm-ec2-role", "RoleId": "EXAMPLEE4STNUQG6R22HC", "Arn": "arn:aws:iam::123456789012:role/service-role/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } ] },
-
透過執行
create-server
命令建立 Puppet 企業主機。 OpsWorks-
--engine
值為Puppet
、--engine-model
是Monolithic
,且--engine-version
可以是2019
或2017
。 -
伺服器名稱在您的 AWS 帳戶中,在每個區域內必須是唯一的。伺服器名稱開頭必須是字母,後面允許字母、數字或連字號 (-),最多可包含 40 個字元。
-
使用您在步驟 3 和 4 中複製的執行個體描述檔 ARN 和服務角色 ARN。
-
有效的執行個體類型為
m5.xlarge
、c5.2xlarge
或c5.4xlarge
。如需這些執行個體類型規格的詳細資訊,請參閱 Amazon EC2 使用者指南中的執行個體類型。 -
--engine-attributes
參數為選用;如果您未指定 Puppet 管理員密碼,伺服器建立程序會為您產生密碼。如果您新增--engine-attributes
,請指定PUPPET_ADMIN_PASSWORD
,這是用於登入 Puppet Enterprise 主控台網頁的管理員密碼。此密碼必須使用 8 到 32 個 ASCII 字元。 -
SSH 金鑰對為選用,但如果您需要重設主控台管理員密碼,它可協助您連線至 Puppet 主伺服器。如需有關建立安全殼層 key pair 的詳細資訊,請參閱 Amazon EC2 使用者指南中的 Amazon EC2 金鑰配對。
-
若要使用自訂網域,請將下列參數新增至您的命令。否則,Puppet 主伺服器建立程序會自動為您產生端點。需要所有三個參數才能設定自訂網域。如需有關使用這些參數的其他需求的詳細資訊,請參閱 AWS OpsWorks CM API 參考CreateServer中的。
-
--custom-domain
- 伺服器的選用公有端點,例如https://aws.my-company.com
。 -
--custom-certificate
- PEM 格式的 HTTPS 憑證。此值可以是單一、自我簽署的憑證或憑證鏈。 -
--custom-private-key
- PEM 格式的私密金鑰,以便利用 HTTPS 連線至伺服器。私密金鑰不得加密,不能受密碼或密碼短語保護。
-
-
需要每週系統維護。有效值必須以下列格式指定:
DDD:HH:MM
。指定的時間是以國際標準時間 (UTC) 表示。如果您未指定--preferred-maintenance-window
的值,預設值為星期二、星期三或星期五的隨機一小時時段。 -
--preferred-backup-window
的有效值必須以下列其中一種格式指定:HH:MM
表示每日備份,或DDD:HH:MM
表示每週備份。指定的時間是以 UTC 表示。預設值為隨機的每日開始時間。若要退出自動備份,請改為新增參數--disable-automated-backup
。 -
針對
--security-group-ids
,輸入一或多個安全群組 ID,並以空格分隔。 -
針對
--subnet-ids
,輸入子網路 ID。
aws opsworks-cm create-server --engine "Puppet" --engine-model "Monolithic" --engine-version "2019" --server-name "
server_name
" --instance-profile-arn "instance_profile_ARN
" --instance-type "instance_type
" --engine-attributes '{"PUPPET_ADMIN_PASSWORD":"ASCII_password
"}' --key-pair "key_pair_name
" --preferred-maintenance-window "ddd:hh:mm
" --preferred-backup-window "ddd:hh:mm
" --security-group-idssecurity_group_id1
security_group_id2
--service-role-arn "service_role_ARN
" --subnet-idssubnet_ID
以下是範例。
aws opsworks-cm create-server --engine "Puppet" --engine-model "Monolithic" --engine-version "2019" --server-name "puppet-02" --instance-profile-arn "arn:aws:iam::111122223333:instance-profile/aws-opsworks-cm-ec2-role" --instance-type "m5.xlarge" --engine-attributes '{"PUPPET_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' --key-pair "amazon-test" --preferred-maintenance-window "Mon:08:00" --preferred-backup-window "Sun:02:00" --security-group-ids sg-b00000001 sg-b0000008 --service-role-arn "arn:aws:iam::111122223333:role/service-role/aws-opsworks-cm-service-role" --subnet-ids subnet-383daa71
下列範例會建立使用自訂網域的 Puppet 主伺服器。
aws opsworks-cm create-server \ --engine "Puppet" \ --engine-model "Monolithic" \ --engine-version "2019" \ --server-name "puppet-02" \ --instance-profile-arn "arn:aws:iam::111122223333:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.xlarge" \ --engine-attributes '{"PUPPET_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --custom-domain "my-puppet-master.my-corp.com" \ --custom-certificate "-----BEGIN CERTIFICATE----- EXAMPLEqEXAMPLE== -----END CERTIFICATE-----" \ --custom-private-key "-----BEGIN RSA PRIVATE KEY----- EXAMPLEqEXAMPLE= -----END RSA PRIVATE KEY-----" \ --key-pair "amazon-test" --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::111122223333:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-383daa71
下列範例會建立可新增兩個標籤的 Puppet 主伺服器:
Stage: Production
和Department: Marketing
。如需在 Puppet Enterprise 伺服器上 OpsWorks 新增和管理標籤的詳細資訊,請參閱本指南在 AWS OpsWorks for Puppet Enterprise 資源上使用標籤中的。aws opsworks-cm create-server \ --engine "Puppet" \ --engine-model "Monolithic" \ --engine-version "2019" \ --server-name "puppet-02" \ --instance-profile-arn "arn:aws:iam::111122223333:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.xlarge" \ --engine-attributes '{"PUPPET_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --key-pair "amazon-test" --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::111122223333:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-383daa71 \ --tags [{\"Key\":\"Stage\",\"Value\":\"Production\"},{\"Key\":\"Department\",\"Value\":\"Marketing\"}]
-
-
OpsWorks 對於木偶企業大約需要 15 分鐘來創建一個新的服務器。請勿關閉
create-server
命令的輸出或關閉您的 shell 工作階段,因為輸出可能包含不會再顯示的重要資訊。若要從create-server
結果取得密碼和入門套件,請前往下一個步驟。如果您在伺服器上使用自訂網域,請在
create-server
命令的輸出中複製Endpoint
屬性的值。以下是範例。"Endpoint": "puppet-07-exampleexample.opsworks-cm.us-east-1.amazonaws.com"
-
如果您選擇讓 Puppet 企業為您 OpsWorks 產生密碼,您可以使用 JSON 處理器 (例如 j
q),以可用的格式從 create-server
結果中擷取密碼。安裝 jq之後,您可以執行下列命令來解壓縮 Puppet 管理員密碼和入門套件。如果您未在步驟 3 中提供自己的密碼,請務必將解壓縮的管理員密碼儲存在方便但安全的位置。 #Get the Puppet password: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "PUPPET_ADMIN_PASSWORD") | .Value' #Get the Puppet Starter Kit: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "PUPPET_STARTER_KIT") | .Value' | base64 -D > starterkit.zip
注意
您無法在 AWS Management Console中重新產生新的 Puppet 主伺服器入門套件。使用建立 Puppet 主機時 AWS CLI,請執行上述
jq
命令,將 base64 編碼的入門套件儲存為 ZIP 檔案。create-server
-
如果您不是使用自訂網域,請繼續下一個步驟。如果您在伺服器上使用自訂網域,請在企業的 DNS 管理工具中建立 CNAME 項目,以將您的自訂網域指向您在步驟 6 中複製的 Puppet Enterprise 端點。 OpsWorks 在完成此步驟之前,您無法連線或登入具有自訂網域的伺服器。
-
繼續進行下一節:使用入門套件設定 Puppet 主伺服器。