使用註冊命令 (IAM 使用者 ARN) 註冊內部部署執行個體 - AWS CodeDeploy

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

使用註冊命令 (IAM 使用者 ARN) 註冊內部部署執行個體

重要

不建議使用 IAM 使用者註冊執行個體,因為它使用靜態 (永久) 登入資料進行身份驗證。為了提高安全性,我們建議使用臨時登入資料註冊執行個體進行驗證。如需詳細資訊,請參閱 使用命 register-on-premises-instance 令 (IAM 工作階段 ARN) 註冊內部部署執行個體

重要

確保您有適當的計劃來輪替 IAM 使用者的存取金鑰 (永久登入資料)。如需詳細資訊,請參閱旋轉存取金鑰

本節說明如何設定內部部署執行個體,並以最少的努力註冊並加上標記。 CodeDeploy 當您使用單一或小型現場部署執行個體機群時,register 命令最有用。只有在使用 IAM 使用者 ARN 驗證執行個體時,才能使用此register命令。您無法將register命令與 IAM 工作階段 ARN 搭配使用來進行身份驗證。

當您使用該register命令時,您可以 CodeDeploy 執行以下操作:

  • 如果您未使用命令指定內部部署執行個體,請在 AWS Identity and Access Management 中建立 IAM 使用者。

  • 將 IAM 使用者的登入資料儲存至內部部署執行個體設定檔。

  • 使用註冊內部部署執行個體 CodeDeploy。

  • 如果您將標籤指定為命令的一部分,請將標籤新增至現場部署執行個體。

注意

register-on-premises-instance命令是註命令的替代方法。如果您想要設定內部部署執行個體,並 CodeDeploy大部分自行註冊並加上標記,請使用register-on-premises-instance命令。該register-on-premises-instance命令還提供了使用 IAM 工作階段 ARN 註冊執行個體的選項,而不是 IAM 使用者 ARN。如果您擁有大量現場部署執行個體機群,此方法可提供很大優勢。具體而言,您可以使用單一 IAM 工作階段 ARN 驗證多個執行個體,而不必逐個為每個內部部署執行個體建立 IAM 使用者。如需詳細資訊,請參閱 使用命 register-on-premises-instance 令 (IAM 使用者 ARN) 註冊內部部署執行個體使用命 register-on-premises-instance 令 (IAM 工作階段 ARN) 註冊內部部署執行個體

步驟 1:在內部部署執行個體 AWS CLI 上安裝和設定

  1. AWS CLI 在內部部署執行個體上安裝。請遵循「使用者指南」中的「取得設定」 AWS CLI中的AWS Command Line Interface 指示進行。

    注意

    CodeDeploy 1.7.19 版及更 AWS CLI 新版本提供用於使用內部部署執行個體的命令。如果您已 AWS CLI 經安裝了,請aws --version致電檢查其版本。

  2. AWS CLI 在內部部署執行個體上設定。請遵循使用者指南中的〈配置〉 AWS CLI中的AWS Command Line Interface示進行。

    重要

    在設定 AWS CLI (例如,透過呼叫aws configure命令) 時,請務必指定 IAM 使用者的秘密金鑰 ID 和秘密存取金鑰,該使用者除了中指定的 AWS 權限外,至少具有下列存取權限設定內部部署執行個體的前提。這可讓您在內部部署執行個體上下載並安裝 CodeDeploy 代理程式。存取許可看起來類似下述:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser", "tag:getTagKeys", "tag:getTagValues", "tag:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    注意

    如果您在嘗試存取先前顯示的其中一個 Amazon S3 儲存貯體時看到存取遭拒錯誤,請嘗試省略儲存貯體資源 ARN 的一/*部分,例如。arn:aws:s3:::aws-codedeploy-sa-east-1

第 2 步:調用註冊命令

針對此步驟,我們假設您正在從現場部署執行個體本身註冊現場部署執行個體。您也可以從已安裝和設定的個別 AWS CLI 裝置或執行個體註冊內部部署執行個體,如上述步驟所述。

使用 AWS CLI 來呼叫寄存器命令,指定:

  • 唯一識別內部部署執行個體的名稱 CodeDeploy (使用--instance-name選項)。

    重要

    為了協助在稍後識別現場部署執行個體,特別是用於偵錯用途,我們強烈建議您使用映射至現場部署執行個體的某些獨特特性名稱 (例如序號或某些唯一的內部資產識別符,如果適用)。如果您指定名稱的 MAC 位址,請注意 MAC 位址包含 CodeDeploy 不允許的字元,例如冒號 (:)。針對允許使用的字元清單,請參閱 CodeDeploy 配額

  • 或者,您要與此內部部署執行個體建立關聯的現有 IAM 使用者的 ARN (使用選--iam-user-arn項)。若要取得 IAM 使用者的 ARN,請呼叫 get-user 命令,或在 IAM 主控台的「使者」區段中選擇 IAM 使用者名稱,然後在「摘要」區段中找到「使用者 ARN」值。如果未指定此選項,則 CodeDeploy 會在您的 AWS 帳戶中代表您建立 IAM 使用者,並將其與內部部署執行個體建立關聯。

    重要

    如果您指定 --iam-user-arn 選項,則也必須手動建立現場部署執行個體組態檔案,如步驟 4:將設定檔新增至內部部署執行個體中所述。

    您只能將一個 IAM 使用者與一個內部部署執行個體建立關聯。嘗試將單一 IAM 使用者與多個內部部署執行個體建立關聯可能會導致錯誤、部署失敗到這些內部部署執行個體,或是部署到停留在永久擱置狀態的現場部署執行個體。

  • 或者,一組現場部署執行個體標籤 (含--tags選項) CodeDeploy ,用於識別要部署的 Amazon EC2 執行個體集。使用 Key=tag-key,Value=tag-value 來指定每個標籤 (例如 Key=Name,Value=Beta Key=Name,Value=WestRegion)。如果未指定此選項,則不會註冊任何標籤。若要稍後註冊標籤,請呼叫 add-tags-to-on-premises- 執行個體指令。

  • 您可以選擇性 AWS 地註冊內部部署執行個體的區域 CodeDeploy (使用--region選項)。這必須是「區域」中列出的其中一個支援區域,以及 AWS 一般參考(例如,us-west-2) 中的端點。如果未指定此選項,將使用與呼叫 IAM 使用者相關聯的預設 AWS 區域。

例如:

aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2

register 命令會執行以下動作:

  1. 如果未指定現有的 IAM 使用者,請建立 IAM 使用者,將必要的許可附加至該使用者,然後產生對應的秘密金鑰和秘密存取金鑰。內部部署執行個體將使用此 IAM 使用者及其許可和登入資料進行驗證並與之互動 CodeDeploy。

  2. 使用註冊內部部署執行個體 CodeDeploy。

  3. 如果有指定,則會將使用--tags選項指定的標記與已註冊的內部部署執行個體名稱產生關聯。 CodeDeploy

  4. 如果已建立 IAM 使用者,也會在呼叫register命令的相同目錄中建立所需的組態檔案。

如果此命令發生錯誤,會出現錯誤訊息,說明如何手動完成剩下的步驟。否則即會出現成功訊息,說明如何呼叫在下一個步驟中列出的 install 命令。

步驟 3:調用安裝命令

在內部部署執行個體中 AWS CLI ,使用呼叫 install 命令,並指定:

  • 組態檔案的路徑 (使用 --config-file 選項)。

  • (選用) 是否取代現場部署執行個體上已存在的組態檔案 (使用 --override-config 選項)。如果未指定,將不會取代現有的組態檔案。

  • 您可以選擇性 AWS 地註冊內部部署執行個體的區域 CodeDeploy (使用--region選項)。這必須是「區域」中列出的其中一個支援區域,以及 AWS 一般參考(例如,us-west-2) 中的端點。如果未指定此選項,將使用與呼叫 IAM 使用者相關聯的預設 AWS 區域。

  • (選擇性) 要從中安裝 CodeDeploy 代理程式的自訂位置 (使用--agent-installer選項)。此選項適用於安裝 CodeDeploy 不正式支援的 CodeDeploy 代理程式的自訂版本 (例如以中的CodeDeploy代理程式儲存庫為基礎的自訂版本 GitHub)。該值必須是包含以下任一項目的 Amazon S3 儲存貯體的路徑:

    • CodeDeploy 代理程式安裝指令集 (適用於 Linux 或 UNIX 作業系統,類似於中的CodeDeploy代理程式儲存庫中 GitHub的安裝檔案)。

    • CodeDeploy 代理程式安裝程式套件 (.msi) 檔案 (適用於 Windows 作業系統)。

    如果未指定此選項, CodeDeploy 將盡可能從自己的位置安裝正式支援的代理程式版本,該 CodeDeploy 代理程式版本與內部部署執行個體上的作業系統相容。

例如:

aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

install 命令會執行以下動作:

  1. 檢查現場部署執行個體是否為 Amazon EC2 執行個體。如果是,則會顯示錯誤訊息。

  2. 將內部部署執行個體組態檔案從執行個體上的指定位置複製到 CodeDeploy 代理程式預期尋找的位置,前提是檔案尚未在該位置。

    對於 Ubuntu 服務器和紅帽企業 Linux(RHEL)),這是/etc/codedeploy-agent/conf/codedeploy.onpremises.yml

    對於視窗伺服器,這是C:\ProgramData\Amazon\CodeDeploy\ conf.onpremises.yml

    如果 --override-config 選項已指定,則會建立或覆寫該檔案。

  3. 在內部部署執行個體上安裝 CodeDeploy 代理程式,然後啟動它。

步驟 4:將應用程式修訂部署到內部部署執行個

您現在已準備好將應用程式修訂部署至已註冊和加上標籤的現場部署執行個體。

您可以將應用程式修訂部署到現場部署執行個體的方式,類似於將應用程式修訂部署到 Amazon EC2 執行個體。如需說明,請參閱使用建立部署 CodeDeploy。這些指示會連結至必要條件,包括建立應用程式、建立部署群組和準備應用程式修訂。如果您需要簡單的範例應用程式修訂來部署,您可以建立一個,如教學課程:使用 CodeDeploy (Windows 伺服器、Ubuntu 伺服器或 RHEL) 將應用程式部署到內部部署執行個體 中的步驟 2:建立範例應用程式修訂所述。

重要

如果您在建立以內部部署執行個體為目標的部署群組時重複使用現有的 CodeDeploy 服務角色,則必Tag:get*須包括服務角色原則陳述式的一Action部分。如需詳細資訊,請參閱 步驟 2:建立服務角色 CodeDeploy

步驟 5:追蹤內部部署執行個體的部署

在您將應用程式修訂部署至已註冊和加入標籤的現場部署執行個體後,您可以追蹤部署的進度。

您可以使用類似於追蹤 Amazon EC2 執行個體的部署方式來追蹤現場部署執行個體。如需說明,請參閱檢視 CodeDeploy 部署詳情

如需更多選項,請參閱 管理內部部署執行個體作 CodeDeploy