本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 Chef Automate 伺服器
重要
AWS OpsWorks 廚師自動化已於 2024 年 5 月 5 日終止使用壽命,並已針對新客戶和現有客戶停用。我們建議現有客戶遷移到 Chef SaaS 或替代解決方案。如果您有任何疑問,可以通過 AWS Re: post
您可以使用 AWS OpsWorks for Chef Automate 主控台建立 Chef 伺服器,或 AWS CLI.
創建一個廚師自動化服務器 AWS Management Console
請登入 AWS Management Console 並開啟 AWS OpsWorks 主控台,網址為 https://console.aws.amazon.com/opsworks/
。 -
在 AWS OpsWorks 首頁上,選擇轉到 OpsWorks 廚師自動化。
-
在 AWS OpsWorks for Chef Automate 首頁上,選擇「建立 Chef 自動化伺服器」。
-
在 Set name, region, and type (設定名稱、區域和類型) 頁面上,指定您的伺服器名稱。Chef 伺服器名稱最多可包含 40 個字元,而且只能包含英數字元和破折號。選取支援的區域,然後選擇支援您想要管理之節點數目的執行個體類型。如有需要,您可以在建立伺服器之後變更執行個體類型。在本逐步解說中,我們將在美國西部 (奧勒岡) 區域建立 m5.large 執行個體類型。選擇下一步。
-
在 Configure server (設定伺服器) 頁面上,保留 SSH key (SSH 金鑰) 下拉式清單中的預設選項,除非您想要指定金鑰對名稱。
-
保留 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 憑證中輸入的公開金鑰。選擇下一步。
-
-
在 Configure Advanced Settings (設定進階設定) 頁面的 Network and Security (網路與安全) 區域中,選擇 VPC、子網路,以及一或多個安全群組。下列是您的 VPC 的需求:
-
VPC 必須至少有一個公有子網路。
-
必須啟用 DNS 解析。
-
必須在公有子網路上啟用 Auto-assign public IP (自動指派公有 IP)。
AWS OpsWorks 如果您還沒有要使用的安全性群組、服務角色和執行個體設定檔,可以為您產生安全性群組、服務角色和執行個體設定檔。您的伺服器可以是多個安全群組的成員。離開此頁面之後,您將無法變更 Chef 伺服器的網路與安全設定。
-
-
在 System maintenance (系統維護) 區段中,將日和小時設為您希望開始系統維護的時間。因為您應預期伺服器在系統維護期間離線,請選擇一般工作時間內伺服器需求較低的時間。連線的節點會進入
pending-server
狀態,直到維護完成為止。需要維護時段。您可以使用 AWS Management Console、 AWS CLI或 API 來變更開始日期和稍後的時間。
-
設定備份。預設會啟用自動備份。設定要開始自動備份的偏好頻率和小時數,並設定要存放在 Amazon 簡單儲存服務中的備份世代數量。最多可保留 30 個備份;達到最大備份時, AWS OpsWorks for Chef Automate 會刪除最舊的備份以騰出空間供新備份使用。
-
(選用) 在 Tags (標籤) 中,將標籤新增至伺服器和相關資源,例如 EC2 執行個體、彈性 IP 地址、安全群組、S3 儲存貯體和備份。如需標記 AWS OpsWorks for Chef Automate 伺服器的更多資訊,請參閱在 AWS OpsWorks for Chef Automate 資源上使用標籤。
-
當您完成設定進階設定時,選擇 Next (下一步)。
-
在 Review (檢閱) 頁面上,檢視您的選擇。當您準備好建立伺服器時,選擇 Launch (啟動)。
在等待 AWS OpsWorks 創建 Chef 服務器時,請轉到使用入門套件設定 Chef 伺服器並下載入門套件和 Chef 自動化儀表板憑據。不要等到您的伺服器上線,再下載這些項目。
伺服器建立完成之後, AWS OpsWorks for Chef Automate 首頁即會顯示您的 Chef 伺服器,且狀態為 online (線上)。伺服器上線之後,伺服器的網域會提供 Chef Automate 儀表板,URL 格式如下:
https://
。your_server_name
-random.region.opsworks-cm.io
使用建立 Chef 自動化伺服器 AWS CLI
透過執行 AWS CLI 指令建立 AWS OpsWorks for Chef Automate 伺服器與在主控台中建立伺服器不同。如果您未指定要使用的現有服務角色和安全性群組,請在主控台中為您 AWS OpsWorks 建立服務角色和安全性群組。在中 AWS CLI,如果您未指定安全性群組,但不會自動建立服務角色,則 AWS OpsWorks 可以為您建立安全性群組;您必須提供服務角色 ARN 做為create-server
命令的一部分。在控制台中,在創建 Chef 自動化服務器時 AWS OpsWorks ,您可以下載 Chef 自動化入門套件和 Chef 自動化儀表板的登錄憑據。由於在使用建立 AWS OpsWorks for Chef Automate
伺服器時無法執行此操作 AWS CLI,因此您可以在新 AWS OpsWorks for Chef Automate 伺服器上線後,使用 JSON 處理公用程式從create-server
命令的結果中取得登入認證和入門套件。或者,您可以在新的 AWS OpsWorks for Chef Automate
伺服器上線之後,在主控台中產生一組新的登入資料和新的入門套件。
如果您的本機電腦尚未執行 AWS CLI,請 AWS CLI 按照 AWS 命令列界面使用者指南中的安裝指示下載並安裝。本節不會說明您可以搭配 create-server
命令使用的所有參數。如需 create-server
參數的詳細資訊,請參閱「 參考」create-server
中的 AWS CLI
。
-
請務必完成這些先決條件,特別是設定 VPC,或確定您具備想要使用的現有 VPC。若要建立您的 Chef Automate 伺服器,您需要子網路 ID。
-
(選用) 使用 OpenSSL
產生 Chef 樞紐金鑰,並將金鑰儲存至您本機電腦上安全方便的檔案。如果您未在 create-server
命令中提供樞紐金鑰,則會在伺服器建立程序中自動產生。如果您想要略過此步驟,您可以改為從create-server
命令的結果取得 Chef Automate 樞紐金鑰。如果您選擇使用以下命令產生樞紐金鑰,請務必包含-pubout
參數,因為 Chef Automate 樞紐金鑰值是 RSA 金鑰對的公有部分。如需詳細資訊,請參閱步驟 6。umask 077 openssl genrsa -out "pivotal" 2048 openssl rsa -in "pivotal" -pubout
-
建立服務角色和執行個體設定檔。 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。您需要這些值,才能建立您的 Chef Automate 伺服器。{ "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。您需要這些值,才能建立您的 Chef Automate 伺服器。{ "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
指令來建立 AWS OpsWorks for Chef Automate 伺服器。-
--engine
值為ChefAutomate
、--engine-model
為Single
,而--engine-version
為12
。 -
伺服器名稱在您的 AWS 帳戶中,在每個區域內必須是唯一的。伺服器名稱開頭必須是字母,後面允許字母、數字或連字號 (-),最多可包含 40 個字元。
-
使用您在步驟 4 和 5 中複製的執行個體描述檔 ARN 和服務角色 ARN。
-
有效的執行個體類型為
m5.large
、r5.xlarge
或r5.2xlarge
。如需這些執行個體類型規格的詳細資訊,請參閱 Amazon EC2 使用者指南中的執行個體類型。 -
--engine-attributes
參數為選用;如果您未指定一或兩個值,伺服器建立程序會為您產生值。如果您新增--engine-attributes
,請指定您在步驟 2 中產生的CHEF_AUTOMATE_PIVOTAL_KEY
值、CHEF_AUTOMATE_ADMIN_PASSWORD
或兩者。如果您未設定
CHEF_AUTOMATE_ADMIN_PASSWORD
的值,這時系統會產生密碼,並在create-server
回應中傳回。您也可以在主控台中再次下載入門套件,這會重新產生此密碼。密碼長度最少 八個字元,最多 32 個字元。密碼可包含字母、數字和特殊字元 (!/@#$%^+=_
)。密碼必須包含至少一個小寫字母、一個大寫字母、一個數字和一個特殊字元。 -
SSH 金鑰對為選用,但如果您需要重設 Chef Automate 儀表板管理員密碼,它可協助您連線至 Chef Automate 伺服器。如需建立安全殼層 key pair 的詳細資訊,請參閱 Amazon EC2 使用者指南中的 Amazon EC2 金鑰配對。
-
若要使用自訂網域,請將下列參數新增至您的命令。否則,Chef Automate 伺服器建立程序會自動為您產生端點。需要所有三個參數才能設定自訂網域。如需有關使用這些參數的其他需求的詳細資訊,請參閱 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 "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "
server_name
" --instance-profile-arn "instance_profile_ARN
" --instance-type "instance_type
" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"pivotal_key
","CHEF_AUTOMATE_ADMIN_PASSWORD":"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 "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "automate-06" --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" --instance-type "m5.large" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_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::12345678912:role/service-role/aws-opsworks-cm-service-role" --subnet-ids subnet-300aaa00
以下範例建立一個使用自訂網域的 Chef Automate 伺服器。
aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-custom-domain-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --custom-domain "my-chef-automate-server.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::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00
以下範例建立的 Chef Automate 伺服器會新增下面二個標籤:
Stage: Production
和Department: Marketing
。如需有關在 AWS OpsWorks for Chef Automate 伺服器上新增和管理標籤的詳細資訊,請參閱本指南在 AWS OpsWorks for Chef Automate 資源上使用標籤中的。aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-test-chef-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_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::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00 \ --tags [{\"Key\":\"Stage\",\"Value\":\"Production\"},{\"Key\":\"Department\",\"Value\":\"Marketing\"}]
-
-
AWS OpsWorks for Chef Automate 大約需要 15 分鐘來創建一個新的服務器。請勿關閉
create-server
命令的輸出或關閉您的 shell 工作階段,因為輸出可能包含不會再顯示的重要資訊。若要從create-server
結果取得密碼和入門套件,請前往下一個步驟。如果您在伺服器上使用自訂網域,請在
create-server
命令的輸出中複製Endpoint
屬性的值。以下是範例。"Endpoint": "automate-07-exampleexample.opsworks-cm.us-east-1.amazonaws.com"
-
如果您選擇為您 AWS OpsWorks for Chef Automate 生成密鑰和密碼,則可以使用 JSON 處理器(例如 j
q)以可用的格式從 create-server
結果中提取它們。安裝 jq之後,您可以執行下列命令來解壓縮樞紐金鑰、Chef Automate 儀表板管理員密碼和入門套件。如果您未在步驟 4 中提供自己的樞紐金鑰和密碼,請務必將解壓縮的樞紐金鑰和管理員密碼儲存在方便但安全的位置。 #Get the Chef password: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_ADMIN_PASSWORD") | .Value' #Get the Chef Pivotal Key: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_PIVOTAL_KEY") | .Value' #Get the Chef Starter Kit: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_STARTER_KIT") | .Value' | base64 -D > starterkit.zip
-
或者,如果您未從
create-server
命令結果中擷取入門套件,您可以從 AWS OpsWorks for Chef Automate 主控台中伺服器的 [內容] 頁面下載新的入門套件。下載新的入門套件會重設 Chef Automate 儀表板管理員密碼。 -
如果您不是使用自訂網域,請繼續下一個步驟。如果您在伺服器上使用自訂網域,請在企業的 DNS 管理工具中建立 CNAME 項目,以將自訂網域指向您在步驟 7 中複製的 AWS OpsWorks for Chef Automate 端點。在完成此步驟之前,您無法連線或登入具有自訂網域的伺服器。
-
完成伺服器建立程序之後,繼續使用入門套件設定 Chef 伺服器。