建立一個IAM用戶或使用一個與AWS相關聯的用戶;html
複製如下的策略附加到IAM用戶,向IAM用戶賦予對codedeploy(及codedeploy所依賴的AWS服務和操做)的訪問權限:shell
{
"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" : "*"
}
]
}json
可使用提供的AWS cloudformation 模板啓動與codedeploy兼容的EC2實例;若是使用AWS cloudformation 模板建立應用程序,部署組及部署配置,須要向IAM用戶賦予AWS cloudformation和AWS cloudformation 所依賴的AWS服務和操做的訪問權限,例如:bash
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:*"
],
"Resource": "*"
}
]
}服務器
要從本地的計算機上調用codedeploy,必須安裝AWS CLI 。curl
AWS CLI 的 1.6.1 版最早提供了 CodeDeploy 命令。而 1.7.19 版的 AWS CLI 中提供了用於處理本地實例的 CodeDeploy 命令;函數
安裝的是舊版 AWS CLI,則必須升級它,以使 CodeDeploy 命令可用。調用 aws --version 來查看版本工具
使用捆綁安裝程序安裝AWS CLI:(這是爲當前用戶安裝AWS CLI命令)url
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"spa
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
echo $PATH | grep ~/bin
echo $PATH | grep ~/bin$export PATH=~/bin:$PATH
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 configure
aws configureAWS Access Key ID [None]:AWS Secret Access Key [None]:
AKIAIOSFODNN7EXAMPLE
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AKIAIOSFODNN7EXAMPLE
AKIAIOSFODNN7EXAMPLEwJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]:
us-west-2
us-west-2
us-west-2Default output format [None]:
json
json
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控制檯的導航窗格中,選擇策略(策略),而後選擇建立策略(建立策略)。(若是開始按鈕出現,選擇此按鈕,而後選擇建立策略。)
在建立³³策略頁面上的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實例配置文件已經建立完了。