溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行AWS的自動(dòng)部署工具codedeploy部署

發(fā)布時(shí)間:2021-11-18 17:23:12 來(lái)源:億速云 閱讀:281 作者:柒染 欄目:云計(jì)算

如何進(jìn)行AWS的自動(dòng)部署工具codedeploy部署,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

開(kāi)始部署codedeploy:

1.先預(yù)置IAM用戶:

創(chuàng)建一個(gè)IAM用戶或使用一個(gè)與AWS相關(guān)聯(lián)的用戶;

復(fù)制以下的策略附加到IAM用戶,向IAM用戶賦予對(duì)codedeploy(及codedeploy所依賴的AWS服務(wù)和操作)的訪問(wèn)權(quán)限:

{
  "Version": "2012-10-17",
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : [
        "autoscaling:*",
        "codedeploy:*",
        "ec2:*",
        "lambda:*",
        "ecs:*",
        "elasticloadbalancing:*",
        "iam:AddRoleToInstanceProfile",
        "iam:CreateInstanceProfile",
        "iam:CreateRole",
        "iam:DeleteInstanceProfile",
        "iam:DeleteRole",
        "iam:DeleteRolePolicy",
        "iam:GetInstanceProfile",
        "iam:GetRole",
        "iam:GetRolePolicy",
        "iam:ListInstanceProfilesForRole",
        "iam:ListRolePolicies",
        "iam:ListRoles",
        "iam:PassRole",
        "iam:PutRolePolicy",
        "iam:RemoveRoleFromInstanceProfile", 
        "s3:*"
      ],
      "Resource" : "*"
    }    
  ]
}

可以使用提供的AWS cloudformation 模板啟動(dòng)與codedeploy兼容的EC2實(shí)例;如果使用AWS cloudformation 模板創(chuàng)建應(yīng)用程序,部署組及部署配置,需要向IAM用戶賦予AWS  cloudformation和AWS cloudformation 所依賴的AWS服務(wù)和操作的訪問(wèn)權(quán)限,例如:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [                
        "cloudformation:*"        
      ],
      "Resource": "*"
    }
  ]
}

2.安裝或升級(jí)AWS CLI 或升級(jí):

要從本地的計(jì)算機(jī)上調(diào)用codedeploy,必須安裝AWS CLI 。

AWS CLI 的 1.6.1 版最先提供了 CodeDeploy 命令。而 1.7.19 版的 AWS CLI 中提供了用于處理本地實(shí)例的 CodeDeploy 命令;

安裝的是舊版 AWS CLI,則必須升級(jí)它,以使 CodeDeploy 命令可用。調(diào)用 aws --version 來(lái)查看版本

使用捆綁安裝程序安裝AWS CLI:(這是為當(dāng)前用戶安裝AWS CLI命令)

curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"

unzip awscli-bundle.zip

./awscli-bundle/install -b ~/bin/aws

這會(huì)將 AWS CLI 安裝到默認(rèn)位置 (~/.local/lib/aws) 并在 ~/bin/aws 中創(chuàng)建符號(hào)鏈接 (symlink)。確保您的 ~/bin 環(huán)境變量中包含 PATH,以使該符號(hào)鏈接生效。

$ echo $PATH | grep ~/bin$ export PATH=~/bin:$PATH

確保$PATH 設(shè)置在多次會(huì)話之間保留,將 export 行添加到 shell 配置文件(~/.profile~/.bash_profile 等)

卸載AWS CLI:

除了可選的符號(hào)鏈接之外,捆綁安裝程序不會(huì)將任何內(nèi)容放在安裝目錄之外,所以卸載十分簡(jiǎn)單,就是直接刪除這兩個(gè)項(xiàng)目,

sudo rm -rf /usr/local/aws
sudo rm /usr/local/bin/aws

在安裝完后需要進(jìn)行配置:

aws config 命令是配置AWS CLI 最快的方法:

$ aws configureAWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]: us-west-2Default output format [None]: json

鍵入該命令時(shí),AWS CLI 會(huì)提示您輸入四條信息(訪問(wèn)密鑰、秘密訪問(wèn)密鑰,AWS 區(qū)域和輸出格式),并將它們存儲(chǔ)在名為 default 的配置文件(一個(gè)設(shè)置集合)中。每當(dāng)您運(yùn)行的 AWS CLI 命令未明確指定要使用的配置文件時(shí),就會(huì)使用該配置文件.

AWS Access Key ID 和 AWS Secret Access Key 它和IAM或角色相關(guān)聯(lián)。

在配置 AWS CLI 時(shí),系統(tǒng)將提示您指定 AWS 區(qū)域。選擇 AWS General Reference 中的區(qū)域和終端節(jié)點(diǎn)中列出的支持區(qū)域之一

要確認(rèn)安裝或者升級(jí):可以使用(aws deploy  help)

3.為codedeploy創(chuàng)建服務(wù)角色:

為codedeploy創(chuàng)建的服務(wù)角色必須授予對(duì)計(jì)算平臺(tái)所需的權(quán)限,部署多個(gè)平臺(tái),建議為每一個(gè)平臺(tái)創(chuàng)建一個(gè)角色,要添加權(quán)限,請(qǐng)?zhí)砑右韵乱粋€(gè)或多個(gè)AWS提供的策略:

對(duì)于 EC2/本地 部署,附加 AWSCodeDeployRole 策略。該策略為您的服務(wù)角色提供針以下權(quán)限:

閱讀您實(shí)例上的標(biāo)簽或通過(guò) Amazon EC2 Auto Scaling 組名稱來(lái)識(shí)別您的 Amazon EC2 實(shí)例。

讀取、創(chuàng)建、更新和刪除 Amazon EC2 Auto Scaling 組、生命周期掛鉤和擴(kuò)展策略。

將信息發(fā)布到 Amazon SNS 主題。

檢索有關(guān) CloudWatch 警報(bào)的信息。

讀取和更新 Elastic Load Balancing。

對(duì)于 Amazon ECS 部署,附加 AWSCodeDeployRoleForECS 策略。該策略為您的服務(wù)角色提供針以下權(quán)限:

讀取、更新和刪除 Amazon ECS 任務(wù)集。

更新 Elastic Load Balancing 目標(biāo)組、偵聽(tīng)器和規(guī)則。

調(diào)用 AWS Lambda 函數(shù)。

訪問(wèn) Amazon S3 存儲(chǔ)桶中的修訂文件。

檢索有關(guān) CloudWatch 警報(bào)的信息。

將信息發(fā)布到 Amazon SNS 主題。

對(duì)于 AWS Lambda 部署,附加 AWSCodeDeployRoleForLambda 策略。該策略為您的服務(wù)角色提供針以下權(quán)限:

  • 讀取、更新和調(diào)用 AWS Lambda 函數(shù)和別名。

  • 訪問(wèn) Amazon S3 存儲(chǔ)桶中的修訂文件。

  • 將信息發(fā)布到 Amazon SNS 主題。

  • 檢索有關(guān) CloudWatch 警報(bào)的信息。

在設(shè)置服務(wù)角色過(guò)程中,還可以更新其信任關(guān)系,指定希望向其授予訪問(wèn)權(quán)限的終端節(jié)點(diǎn)。

4.為EC2實(shí)例創(chuàng)建IAM實(shí)例配置文件:

ECS和lambda平臺(tái)是不需要IAM實(shí)例配置文件的;

ECS部署會(huì)部署一個(gè)ECS服務(wù), Lambda部署會(huì)部署一個(gè)無(wú)服務(wù)器的Lambda函數(shù)版本;

登錄AWS管理控制臺(tái)并通過(guò)以下網(wǎng)址打開(kāi)IAM控制臺(tái)https://console.aws.amazon.com/iam/。

在IAM控制臺(tái)的導(dǎo)航窗格中,選擇策略(策略),然后選擇創(chuàng)建策略(創(chuàng)建策略)。(如果開(kāi)始按鈕出現(xiàn),選擇此按鈕,然后選擇創(chuàng)建策略。)

創(chuàng)建33策略頁(yè)面上的JSON選項(xiàng)卡中粘貼以下內(nèi)容:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

建議將此策略限制為僅 EC2實(shí)例必須訪問(wèn)的 S3。允許訪問(wèn)包含CodeDeploy代理的 S3。否則,在實(shí)例上安裝或更新CodeDeploy代理時(shí)可能會(huì)發(fā)生錯(cuò)誤。要授予IAM實(shí)例配置文件僅訪問(wèn) S3中的某些CodeDeploy資源工具包存儲(chǔ)桶,請(qǐng)使用以下策略,但刪除要阻止訪問(wèn)的存儲(chǔ)桶行:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:Get*",
        "s3:List*"
      ],
      "Resource": [
        "arn:aws:s3:::replace-with-your-s3-bucket-name/*",
        "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-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-south-1/*",
        "arn:aws:s3:::aws-codedeploy-sa-east-1/*"
      ]
    }
  ]
}

  1. 選擇查看策略。

  2. Create policy(創(chuàng)建策略)頁(yè)面上,在Policy Name(策略名稱)框中鍵入CodeDeployDemo-EC2-Permissions

  3. (任選)對(duì)于描述,鍵入策略的描述。

  4. 選擇創(chuàng)建策略

  5. 在導(dǎo)航窗格中,選擇角色,然后選擇創(chuàng)建角色。

  6. Create role創(chuàng)建角色)頁(yè)面上,選擇AWS服務(wù)(AWS服務(wù)),然后從選擇將使用此角色的服務(wù)(選擇將使用此角色的服務(wù))列表中,選擇EC2

  7. 選擇您的使用案例列表中,選擇EC2

  8. 選擇下一個(gè):權(quán)限。

  9. 附件權(quán)限策略頁(yè)面中,選擇您剛剛創(chuàng)建的策略,選擇然后下一步:標(biāo)簽。如果您使用建議的名稱,則該名稱是CodeDeployDemo-EC2-Permissions。

  10. 評(píng)論頁(yè)面上的角色名稱中,鍵入服務(wù)角色(例如,CodeDeployDemo-EC2-Instance-Profile),然后選擇創(chuàng)建角色。

    您還可以在部署說(shuō)明框中鍵入此服務(wù)角色的說(shuō)明。

現(xiàn)在,要附加到Amazon EC2實(shí)例的IAM實(shí)例配置文件已經(jīng)創(chuàng)建完了。

關(guān)于如何進(jìn)行AWS的自動(dòng)部署工具codedeploy部署問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI