jenkins自動部署更新AWS ECS服務

以上是整個部署更新的流程圖:git

1.開發人員對上線的代碼打一個tag,而後把帶tag的代碼推到AWS codecommit上面。async

git   add  -A   *    分佈式

git   commit   -a -m "${tag}"微服務

git   tag   "${tag}"測試

git  push   origin   分支   ${tag}ui

2.AWS codecommit觸發器檢測到分支或標籤有新代碼傳入,發送消息到SNS主題上;spa

        1.建立一個AWS SNS主題:插件

        在建立SNS主題前請確保你已經具備訪問SNS主題的權限,如下爲建立SNS主題的詳細步驟:3d

        1)登錄AWS SNS控制檯;code

        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有訪問權限的用戶。

能夠進行測試訪問,成功後應用保存,退出。能夠提交代碼進行測試。項目配置以下

5.jenkins進行代碼構建做業:

        (首先須要安裝插件:)

        如下是jenkins項目配置的示例:

        

如下是構建image和把image推送到ECR上

如下是更新ECS服務的設置:

至此就配置完了。

相關文章
相關標籤/搜索