AWS实现自动化CICD(二)CodeCommit+CodeDeploy+CodePipeline

血与泪的教训
一定要好好看说明文档
比如 用 CodeDeploy 之前 要先装好它的代理 CodeDeploy agent (哭)

使用CodeDeploy

  1. 安装代理
    安装需要的命令工具

    sudo yum update
    
    sudo yum install ruby
    
    sudo yum install wget
    

    清除任何以前的代理缓存信息的 AMI

    #!/bin/bash
    CODEDEPLOY_BIN="/opt/codedeploy-agent/bin/codedeploy-agent"
    $CODEDEPLOY_BIN stop
    yum erase codedeploy-agent -y
    

    切换到默认目录

    cd /home/ec2-user
    

    获取所在区域的 CodeDeploy 资源工具包文件。
    区域标识符是您所在地区的标识符。
    例如:
    替换bucket-name替换为aws-codedeploy-us-east-2
    替换区域标识符替换为us-east-2

    wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
    

    例:wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install
    给下载的文件赋予执行权限。

    chmod +x ./install
    

    Tips:
    蓝色表示目录;
    绿色表示可执行文件,可执行的程序;
    红色表示压缩文件或包文件;
    浅蓝色表示链接文件;
    灰色表示其它文件;

    安装代理(自动最新版)

    sudo ./install auto
    

    到这里,CodeDeploy的代理安装完成。
    查看服务状态:

    sudo service codedeploy-agent status
    

    命令行启动服务

    sudo service codedeploy-agent start
    
  2. 配置必须的执行文件 appspec.yml
    appspec.yml文件为CodeDeploy必须的执行文件,在根目录新建 appspec.yml文件和scripts文件夹。
    在这里插入图片描述

appspec.yml基础文件内容:

version: 0.0

os: linux

files:

  - source: /
    destination: /home/ec2-user/

hooks:

  ApplicationStop:
    - location: scripts/stop-process.sh
      timeout: 180
      runas: root

  ApplicationStart:
    - location: scripts/start-process.sh
      timeout: 300
      runas: ec2-user


引用的两个文件放在scripts文件夹
start-process.sh

#!/bin/bash

java -jar /tmp/artifact_name.jar > /dev/null 2> /dev/null < /dev/null &

stop-process.sh

#!/bin/bash

ps -ef | grep artifact_name.jar | grep -v grep | awk '{print $2}' | xargs kill
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值