DevOps-Automation with Python 8

Configure Server: Add Environment Tags to EC2 Instances

ZONGRU Li
Jun 21, 2023

試想如果有在AWS上的不同Region分別建立了不同的工作環境

例如...

在法國巴黎建了一群EC2當作正式環境

在日本東京建了一群EC2當作開發環境

然後要根據不同RegionEC2 Server給予tag標籤標註proddev

當然一個簡單操作就是一台台加上去Tag

但是數量一多就很麻煩,這邊即是練習透過簡單Python程式來做

這邊預計是東京2EC2+上其他Region上建1EC2模擬演練

Implementation

首先先把前一節課做的EC2狀態確認的main.py改名為ec2-status-checks.py

然後新增add-env-tags.py開始寫!

這邊將透過describe_instances()這個Func.

先取得所有EC2id塞到list物件

然後一次性地新增所有EC2Tag,也就是分為下面兩步驟:

  1. Collect all instance ids into a list
  2. Add Tags for all instanceIds at once

這樣可以避免一台EC2就發動請求異動一次導致的效率上的問題

如果哪天遇到100EC2還要等程式一台台新增Tag就會太慢

確認Func.的回傳內容要先想辦法拿到id清單

初步建構程式如下:

再來就是要找到create_tags()這個func.

LINK
LINK

上面這部分講師用舊的boto3寫法就不一樣,以下我只寫我的版本

上面的create_tags()這個Func.的回傳範例可以直接複製來用:

這邊順便改變數尾叫tokyo

隨便手動在東京區建兩個EC2:

嘗試執行我們的Python程式:

刷新AWS Web看到:

另一台也:

這邊我個人很好奇如果重複執行會怎麼樣,所以直接跑看看:

程式正常完成

所以如果有其他RegionEC2要增加devtag可以簡單複製:

如果有非常多Region或是處理的不只有Tag,還可以把上面的程式寫成Func.

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet