您好,登錄后才能下訂單哦!
如何進行AWS的自動部署工具codedeploy部署,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創建一個IAM用戶或使用一個與AWS相關聯的用戶;
復制以下的策略附加到IAM用戶,向IAM用戶賦予對codedeploy(及codedeploy所依賴的AWS服務和操作)的訪問權限:
{
"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 模板啟動與codedeploy兼容的EC2實例;如果使用AWS cloudformation 模板創建應用程序,部署組及部署配置,需要向IAM用戶賦予AWS cloudformation和AWS cloudformation 所依賴的AWS服務和操作的訪問權限,例如:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:*"
],
"Resource": "*"
}
]
}
要從本地的計算機上調用codedeploy,必須安裝AWS CLI 。
AWS CLI 的 1.6.1 版最先提供了 CodeDeploy 命令。而 1.7.19 版的 AWS CLI 中提供了用于處理本地實例的 CodeDeploy 命令;
安裝的是舊版 AWS CLI,則必須升級它,以使 CodeDeploy 命令可用。調用 aws --version 來查看版本
使用捆綁安裝程序安裝AWS CLI:(這是為當前用戶安裝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
這會將 AWS CLI 安裝到默認位置 (~/.local/lib/aws
) 并在 ~/bin/aws
中創建符號鏈接 (symlink)。確保您的 ~/bin
環境變量中包含 PATH
,以使該符號鏈接生效。
$ echo $PATH | grep ~/bin$ export PATH=~/bin:$PATH
確保$PATH
設置在多次會話之間保留,將 export
行添加到 shell 配置文件(~/.profile
、~/.bash_profile
等)
卸載AWS CLI:
除了可選的符號鏈接之外,捆綁安裝程序不會將任何內容放在安裝目錄之外,所以卸載十分簡單,就是直接刪除這兩個項目,
sudo rm -rf /usr/local/aws
sudo rm /usr/local/bin/aws
在安裝完后需要進行配置:
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
鍵入該命令時,AWS CLI 會提示您輸入四條信息(訪問密鑰、秘密訪問密鑰,AWS 區域和輸出格式),并將它們存儲在名為 default
的配置文件(一個設置集合)中。每當您運行的 AWS CLI 命令未明確指定要使用的配置文件時,就會使用該配置文件.
AWS Access Key ID
和 AWS Secret Access Key
它和IAM或角色相關聯。
在配置 AWS CLI 時,系統將提示您指定 AWS 區域。選擇 AWS General Reference 中的區域和終端節點中列出的支持區域之一
要確認安裝或者升級:可以使用(aws deploy help)
為codedeploy創建的服務角色必須授予對計算平臺所需的權限,部署多個平臺,建議為每一個平臺創建一個角色,要添加權限,請添加以下一個或多個AWS提供的策略:
對于 EC2/本地 部署,附加 AWSCodeDeployRole
策略。該策略為您的服務角色提供針以下權限:
閱讀您實例上的標簽或通過 Amazon EC2 Auto Scaling 組名稱來識別您的 Amazon EC2 實例。
讀取、創建、更新和刪除 Amazon EC2 Auto Scaling 組、生命周期掛鉤和擴展策略。
將信息發布到 Amazon SNS 主題。
檢索有關 CloudWatch 警報的信息。
讀取和更新 Elastic Load Balancing。
對于 Amazon ECS 部署,附加 AWSCodeDeployRoleForECS
策略。該策略為您的服務角色提供針以下權限:
讀取、更新和刪除 Amazon ECS 任務集。
更新 Elastic Load Balancing 目標組、偵聽器和規則。
調用 AWS Lambda 函數。
訪問 Amazon S3 存儲桶中的修訂文件。
檢索有關 CloudWatch 警報的信息。
將信息發布到 Amazon SNS 主題。
對于 AWS Lambda 部署,附加 AWSCodeDeployRoleForLambda
策略。該策略為您的服務角色提供針以下權限:
讀取、更新和調用 AWS Lambda 函數和別名。
訪問 Amazon S3 存儲桶中的修訂文件。
將信息發布到 Amazon SNS 主題。
檢索有關 CloudWatch 警報的信息。
在設置服務角色過程中,還可以更新其信任關系,指定希望向其授予訪問權限的終端節點。
ECS和lambda平臺是不需要IAM實例配置文件的;
ECS部署會部署一個ECS服務, Lambda部署會部署一個無服務器的Lambda函數版本;
登錄AWS管理控制臺并通過以下網址打開IAM控制臺https://console.aws.amazon.com/iam/。
在IAM控制臺的導航窗格中,選擇策略(策略),然后選擇創建策略(創建策略)。(如果開始按鈕出現,選擇此按鈕,然后選擇創建策略。)
在創建33策略頁面上的JSON選項卡中粘貼以下內容:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
建議將此策略限制為僅 EC2實例必須訪問的 S3。允許訪問包含CodeDeploy代理的 S3。否則,在實例上安裝或更新CodeDeploy代理時可能會發生錯誤。要授予IAM實例配置文件僅訪問 S3中的某些CodeDeploy資源工具包存儲桶,請使用以下策略,但刪除要阻止訪問的存儲桶行:
{
"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/*"
]
}
]
}
選擇查看策略。
在Create policy(創建策略)頁面上,在Policy Name(策略名稱)框中鍵入CodeDeployDemo-EC2-Permissions
。
(任選)對于描述,鍵入策略的描述。
選擇創建策略。
在導航窗格中,選擇角色,然后選擇創建角色。
在Create role(創建角色)頁面上,選擇AWS服務(AWS服務),然后從選擇將使用此角色的服務(選擇將使用此角色的服務)列表中,選擇EC2。
從選擇您的使用案例列表中,選擇EC2。
選擇下一個:權限。
在附件權限策略頁面中,選擇您剛剛創建的策略,選擇然后下一步:標簽。如果您使用建議的名稱,則該名稱是CodeDeployDemo-EC2-Permissions
。
在評論頁面上的角色名稱中,鍵入服務角色(例如,CodeDeployDemo-EC2-Instance-Profile
),然后選擇創建角色。
您還可以在部署說明框中鍵入此服務角色的說明。
現在,要附加到Amazon EC2實例的IAM實例配置文件已經創建完了。
關于如何進行AWS的自動部署工具codedeploy部署問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。