jenkins自动部署更新AWS ECS服务

9e78d6a4c179b64f2554c294dae55b49e40.jpg

以上是整个部署更新的流程图:

1.开发人员对上线的代码打一个tag,然后把带tag的代码推到AWS codecommit上面。

git   add  -A   *    

git   commit   -a -m "${tag}"

git   tag   "${tag}"

git  push   origin   分支   ${tag}

2.AWS codecommit触发器检测到分支或标签有新代码传入,发送消息到SNS主题上;

        1.创建一个AWS SNS主题:

        在创建SNS主题前请确保你已经具有访问SNS主题的权限,以下为创建SNS主题的详细步骤:

        1)登陆AWS SNS控制台;

        2)在创建主题部分输入主题名称(自定义);

        3)选择**创建主题,**将创建主题并打开主题名称显示页面。

        主题的名称ARN,(可选)显示名称主题所有者的AWS账户ID显示在“ **详细信息”**部分中,

        4)上一步中的主题ARN会在codecommit存储库创建AWS SNS主题触发器中用到。

        3.CodeCommit 存储库创建 Amazon SNS 主题触发器

        登陆到AWS 控制台(当然了,也可以通过AWS CLI进行添加)

        进入到codecommit服务配置中,地址:https://console.aws.amazon.com/codesuite/codecommit/home

        进入其中的一个存储库,会出现分支及设置选项:

          

        选择触发器,

        选择创建触发器,进行如下操作:

        1)在触发器名称中输入名称(自定义);

        2)在事件中,选择将触发 Amazon SNS 主题以发送通知的存储库事件:

         如果选择所有存储库事件,则无法选择任何其他事件。要选择事件的子集,请删除 All repository events,然后从列表中选择一个或多个事件。例如,        如果希望触发器只在用户在 CodeCommit 存储库中创建分支或标签时运行,请删除所有存储库事件,然后选择创建分支或标记

        3)如果希望触发器应用于存储库的所有分支,请在分支中,将选定内容保留为空,因为此默认选项会自动将触发器应用于所有分支。如果希望此触发器仅        应用于特定分支,请从存储库分支列表中选择最多 10 个分支名称;

        4)在选择要使用的服务中,选择 Amazon SNS;

        5)在 Amazon SNS 中,从列表中选择主题名称或输入主题的 ARN;

        6)在自定义数据中,提供包含在 Amazon SNS 主题发送的通知中的任何信息(例如,开发人员在讨论该存储库中的开发工作时使用的 IRC 通道)。该字        段是一个字符串。它不能用于传递任何动态参数

        7)选择测试触发器。确认是否已正确配置 CodeCommit 与 Amazon SNS 主题之间的访问。它通过 Amazon SNS 主题使用存储库中的数据(如果可用)发送测试通知。如果没有真实数据可用,测试通知将包含示例数据.

        8)选择创建触发器以完成触发器的创建操作.

3.SNS主题会把消息订阅到SQS队列;

        创建一个AWS SQS消息队列:

        1)进入 Amazon SQS 控制台;

        2)单击立即开始使用tmt_send-receive-async-messages_1b

        3)创建 Amazon SQS 队列

            在此步骤中,您将创建和配置一个 Amazon SQS 队列。队列是一种可靠且高度可扩展的缓冲区,用于当消息在分布式应用程序或微服务间传送时存储        它们。队列可以帮助应用程序解除耦合、连接微服务、批量处理任务或存储通知

        输入队列名称(自定义),选择标准队列。

tmt_send-receive-async-messages_2a

            4)然后点击下方的快速创建就创建好了;

            5)选择队列,订阅队列到主题,到此队列就配置好了。

4.jenkins监控SQS队列,当队列有新消息的时候

        在jenkins的主页中的系统管理,系统设置。

在下方找到AWS SQS队列的配置,(需要提前安装AWS SQS的相关插件),访问密钥ID和密钥是对SQS有访问权限的用户。

可以进行测试访问,成功后应用保存,退出。可以提交代码进行测试。项目配置如下

8e919d04abaa627fe2434ebe95f6045bd86.jpg

5.jenkins进行代码构建作业:

        (首先需要安装插件:)

        以下是jenkins项目配置的示例:

        fee81536a629269492a0e8861115c5c33ae.jpg

b4c97a7bdd1c30370eaa387f7241b717149.jpg

c188ecca3550e6d25737105d7547139cbc7.jpg

ec4bc11e312feb7e046125a041fb08234dd.jpg

以下是构建image和把image推送到ECR上

6cc5be0e501c70e29d6eb92ddbf66c18c68.jpg

以下是更新ECS服务的设置:

c545792d8c8fc9bd1a22495dae05e4a5d44.jpg

至此就配置完了。

转载于:https://my.oschina.net/u/4115857/blog/3047515

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值