单机部署方案:
直接部署到EC2
容器部署方案:
部署到ecs
jenkins主要步骤:
本地linux 推送镜像到ecr(镜像仓库):
aws cli 工具安装
name=saastest
version=latest
tag=$(date +%Y%m%d%H)
#images=${name}:${version}.${tag}
images=${name}:${version}
tarname=${images}.tar
pushurl=579228855639.dkr.ecr.ap-northeast-2.amazonaws.com/${images}
/runtimes/dotnet-sdk-3.0.103-linux-x64/dotnet build SaasTest.sln --configuration Release
cp SaasTest/bin/Release/netcoreapp3.0/* -r publish/
chmod -Rf 777 publish
cd publish
echo ${images} > tag.txt
aa=`cat tag.txt`
echo ${aa}
cd ../SaasTest
token=`/usr/local/aws-cli/v2/2.0.58/bin/aws ecr get-login-password --region ap-northeast-2`
docker login --username AWS --password $token 579228855639.dkr.ecr.ap-northeast-2.amazonaws.com
docker build -t $images .
docker tag $images $pushurl
docker push $pushurl
docker rmi $images
docker rmi $pushurl
jenkins 在已有创建好的环境下配置发布项目 coddepoly
附带 上传s3文件
AWS主要步骤:
大部分可以先看:
10分钟上手 AWS ECS
其中服务创方式用 蓝/绿 部署方式
aws codedepoly 角色配置
CodeDeployExampleRole 权限问题 CodeDeploy 编辑部署组-服务角色
ec2方式一定要加AWSCodeDeployRole windows 只是加这个 加了AWSCodeDeployRoleForECS 出现路径是/不是\\
ecs方式加 AWSCodeDeployRoleForECS 用ec2-win最好不用这个
实例角色配置
就是S3访问权限
AppSpec File 示例。
IAM 生成 ak sK
应用程序-部署组-部署
其他
实例启动并实现远程ssh
设置root 密码 允许ssh外界登录
sudo passwd root
su root
vi /etc/ssh/sshd_config
service sshd restart
操作如下图:
设置hostname
vi /etc/cloud/cloud.cfg
preserve_hostname:true
设置hostname : hostnamectl set-hostname myname
参考
如何在中国区 AWS 使用 CodeDeploy
Jenkins手动更新AWS 上面的ECS服务
Jenkins手动更新AWS 上面的ECS服务_weixin_34001430的博客-优快云博客
10分钟上手 AWS ECS
在 Linux 上安装、更新和卸载 AWS CLI 版本 2
在 Linux 上安装、更新和卸载 AWS CLI 版本 2 - AWS Command Line Interface
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
sudo ./aws/install -i /usr/local/aws-cli -b /usr/local/bin