星期一, 4月 05, 2021

AWS CodeCommit 使用小記

AWS CodeCommit 使用小記


OS: openSUSE Leap 15.2

git: 2.26.2


最近因為使用 GitLab 的關係, 所以有些資料原本是使用 share folder 的方式, 現在也會考慮使用 git 的方式儲存.


今天來寫 AWS CodeCommit 的使用紀錄

目前使用的方式是參考


連接 AWS CodeCommit 有很多方式, 我是採取 SSH Key 的方式, 網路上有人反應這樣的做法比較穩妥, 比較不會出現奇怪的現象.


實作的方式


接下來就讓我們開始吧


首先登入 AWS IAM console

點選左方的 Groups -- > 點選 Create New Group

群組名稱輸入: CodeCommitPowerUser  -- > 點選 Next Step



在 Attach Policy 頁面

搜尋 CodeCommit -- > 勾選 AWSCodeCommitPowerUser

點選 Next Step


檢閱相關設定

點選 Create Group



接下來加入使用者

點選剛剛建立的 CodeCommitPowerUser 群組

在 Users 頁籤 -- > 點選 Add Users to Group



勾選要加入的使用者 -- > Add Users


接下來要將使用者的 SSH Public Key 上傳到 IAM 使用者的 SSH Keys for AWS CodeCommit


點選 IAM console 左方的 Users

點選 剛剛被加入的使用者

點選 Security credentials 頁籤


點選 Upload SSH public key 按鈕



將 SSH 公鑰貼上

點選 Upload SSH public Key





將 SSH key ID 記錄下來, 等等這個 ID 就是 SSH User ID




再來建立 ~/.ssh/config

使用自己習慣的編輯器 建立 ~/.ssh/config 檔案, 內容如下



  • User 後面那串字元, 請換成之前的 SSH key ID

  • IdentityFile 請換成 自己的 SSH Private Key, 如 id_rsa


將 ~/.ssh/config 檔案設定相關權限


> chmod  600  ~/.ssh/config


最後階段, 建立 CodeCommit Repository, 使用 git clone 測試操作


登入 AWS CodeCommit 主控台 https://console.aws.amazon.com/codesuite/codecommit/home


CodeCommit 也是 Region 服務, 所以可以先選取你要建立的 Region, 我這邊的例子是使用 Ohio (  us-east-2 )


點選 Create repository


輸入 儲存庫名稱

點選 Create




建立完成之後, 其實會有不同的頁籤來說明如何連接

點選 SSH 頁籤

展開你要的 OS 選項, 我是用 openSUSE Leap 15.2 , 所以展開 Linux


點選 Step 4 的 Copy

他會複製 git clone ssh 的指令



接下來進行 git clone 的測試


切換到要進行 git clone 的目錄


貼上與執行剛剛複製的 git clone 指令


> git  clone  ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/test20210405


正複製到 'test20210405'...

warning: 您似乎複製了一個空版本庫。


進入到相關目錄

> cd   test20210405/


接下來嘗試建立檔案進行 commit 測試


> echo  "CodeCommit Test"  >  README.md

> git  add  .

> git  commit  -m  "20210405"


[master (根提交) 6381ea1] 20210405

 1 file changed, 1 insertion(+)

 create mode 100644 README.md


> git  push  -u  origin  master


Warning: Permanently added the RSA host key for IP address '52.95.17.51' to the list of known hosts.

枚舉物件: 3, 完成.

物件計數中: 100% (3/3), 完成.

寫入物件中: 100% (3/3), 227 位元組 | 227.00 KiB/s, 完成.

總共 3 (差異 0),復用 0 (差異 0),重用包 0

To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/test20210405

 * [new branch]      master -> master

分支 'master' 設定為追蹤來自 'origin' 的遠端分支 'master'。



回到  AWS CodeCommit 觀察



這樣又多了一個 git 存儲的去處, 也多向 AWS 服務邁向一步



~ enjoy it



Reference:





星期日, 4月 04, 2021

Rancher 2.5.7 with container in Azure 安裝小記

Rancher 2.5.7  with container in Azure 安裝小記


OS: openSUSE Leap 15.2 in Azure

Rancher: 2.5.7


今年又開始重拾 Kubernetes 的研讀, 之前就有注意 Rancher 的相關消息, 在 SUSE 正式併購 Rancher 之後, 就有打算找時間看看他


目前的想法就是研讀 K8S 的時候, 搭配他來看看, 因為是嘗試, 就從 single node with container 方式開始


安裝需求

https://rancher.com/docs/rancher/v2.x/en/installation/requirements/

  • 以  single-node 方式, 規格是 1 vCPU 4GB RAM / 2 vCPU 8GB RAM, 換成 Azure Virtual Machine 的 Size 比較節費的就是 Standard_B2ms



使用 SSH 連入建立的 openSUSE Leap 15.2 in Azure


切換身份爲 root

>  sudo  su  -


啟動 docker 服務, 並預設啟動


# systemctl  start  docker

# systemctl  enable  docker


叄考官方文件 啟用 rancher container



啟動 Rancher


#docker  run  -d  --restart=unless-stopped   -p  80:80  -p  443:443   --privileged   rancher/rancher:latest


然後在 Azure 的 網路安全性群組 開放 Port 443 與 Port 80


開啟瀏覽器 https://YOUR_IP:443

會看到歡迎畫面


  • 輸入管理者 admin 的密碼

  • 勾選同意協定 -- > Continue



設定 Rancher 的 URL



輸入相關 IP 或是 URL 後 -- > Save URL


接下來會看到歡迎畫面與 Rancher 2.5 的介紹視窗



  • 這樣可以清楚的知道目前使用的是 Rancher 2.5 (笑)



觀察一下目前的歡迎畫面



右下角可以調整介面的語系, 可以調整成自己想要的語系




切換後的樣貌



我們來嘗試透過 Rancher 來建立  AKS Cluster 吧


點選 添加叢集


看的出來有支援很多種型態


這邊我點選 Azure AKS



接下來有看到設定畫面



在新增 Cluster 之前要先處理  Azure 上面 Service principals 的部分


我是使用 Azure 的 Cloud Shell 來進行


建議建立之前可以先使用下列指定觀察目前的 Service principals


$ az  ad  sp  list  --all  --output  table


根據官方文件建立 Service Principal

$ az ad sp create-for-rbac --skip-assignment --name testRancherServicePrincipal



  • 這樣的方式顯示出來的欄位爲 appID / displayName / name / password / tenant

    • 可是其實我們只需要的是 Subscription ID / Client ID / Tenant ID / Client Secret

    • 補充: Client ID 就是 AppID, Client Secret 就是 password, 所以只差了 Subscription ID 


所以決定把剛剛那個 Service Principal 先刪除了 ( 順便複習一下之前的 )


使用剛剛的指令加上 grep Rancher 找出剛剛的 Service Principal

$ az  ad  sp  list  --all  --output  table |  grep Rancher

 

參考之前自己的文章


刪除剛剛建立的 Service Principal


$ az  ad  sp  delete --id  8faa88b0-a540-4d8c-a790-1ca6a0522dsd


  • 8faa88b0-a540-4d8c-a790-1ca6a0522dsd 爲剛剛建立的 AppId, 可以看第三欄位


建立 Service Principal


$ az  ad  sp create-for-rbac  --name  testRancherServicePrincipal-20210404 --query   '{"client_id": appId, "secret": password, "Tenant_id": tenant}'



  • 這邊有個雷點, 不可以加上 --skip-assignment  否則會遇到權限不足的問題, 會遇到錯誤訊息 access was recently granted, please refresh your credentials

  • 這次的指令相比於之前自己文章的指令, 有加上 --name 的選項在裡面, 如果沒有使用 --name 指定名稱, 預設會是 azure-cli-20xx-xx-xx-xx-xx-xx, 這樣的好處是可以知道建立時間, 所以我的名稱也有加入時間進去, 以免以後不知道那個 SP 過期

  • 加上 --query 的方式, 輸出自己要的資訊


接下來取得 Subscription ID

使用 az account 指令取得


$ az  account  show  --query  "{ subscription_id: id }"

{

 "subscription_id": "6a2bdf3b-XXXX-XXXX-XXXX-3371d3401feb"

}


好的, 原料備齊, 回到 Rancher 填入資訊

點選 Next: Authenticate & configure nodes


  • 再次提醒自己剛剛在建立 az ad sp 的時候不可以加上 --skip-assignment  否則會遇到權限不足的問題



驗證通過之後, 就是設定 Kubernetes 相關選項




  • 版本我用他預設給的 1.19.7




  • 填入  Resource Group 名稱

  • 設定要使用的 VM 規格, 主機數量

  • 貼上 SSH 公鑰


點選 創建


這個時候可以觀察相關狀態



建立需要一點時間, 可以同步觀察 Azure 上面的資源


建立完成, 可以在 Rancher 與 Azure 上面同步觀察



  • 可以直接在網頁上面執行 kubectl


也可以下載 Kubeconfig


Azure 這邊則可以觀察到

  • 有建立相關的 AKS 服務以及 Resource Group for AKS



最後來測試一個猛的, 刪除 cluster

點選剛剛建立的 Cluster 點選刪除



觀察了一下 Azure 那邊, Rancher 也很盡責的刪除剛剛建立的 AKS 與相關資源



小結一下: 目前看起來 Rancher UI 是很方便的, 所以日後可以多嘗試一下他的相關功能

也算是跨出 Rancher 的一小步了


~ enjoy it




Reference: