星期六, 8月 08, 2020

使用 vscode 同步 gitlab 專案小記

使用 vscode 同步 gitlab 專案小記


OS: opeSUSE Leap 15.1

GitLab: gitlab.com

vscode: 1.47.3


上次寫 GitLab 在 openSUSE Leap 的安裝


今天要來小記, 在 gitlab 上面建立帳號與專案之後, 如何簡案的在 vscode 內進行 git commit 與 push 來同步檔案


首先要來處理 GitLab 上面的 SSH Key, 這邊是以 gitlab.com 為例


登入 https://gitlab.com 

到 GitLab 的 SSH Key 頁面


將 SSH 的公鑰 ( id_rsa.pub 之類 ) 貼到 Key 區域內

加入名稱

選取有效日

點選 Add Key




開啟自己的專案頁面 https://gitlab.com/dashboard/projects

點選要同步的專案


點選 Clone

複製 git 的 URL




回到自己的機器上面, 在終端機上進入到想要 clone 的目錄

使用 git clone 指令複製目錄到本機


> git  clone  git@gitlab.com:sakanamax/testgitlab.git


正複製到 'testgitlab'...

remote: Enumerating objects: 3, done.

remote: Counting objects: 100% (3/3), done.

remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0

接收物件中: 100% (3/3), 完成.


  • 將 git clone 後面的 URL 換成自己專案的 URL


接下來進行測試

vscode 內含 git 相關功能, 如果單純以 git 功能來說, 我比較喜歡 smartgit , 但是現在 vscode 是自己的主要編輯器, 所以大部分的行為希望可以在 vscode 內完成


開啟 vscode

點選 File -- > 點選 Open Folder

開啟剛剛 clone 下來的目錄




嘗試編輯檔案, 這邊以編輯 README.md 為例

儲存檔案之後, 就會發現

左邊的 source control 就會出現有 pending change


點選左邊的 source control 按鈕

點選 + 符號進行 Stage Change



觀察資訊

檔案從 Changes 移動到 Stage Changes



接下來就是進行 commit

輸入 Message 

點選 Commit (打勾符號)



推送到遠端的 GitLab

點選 SOURCE CONTROL 的選項按鈕 ...

點選 PUSH


到 GitLab 觀察檔案有沒有更新

大功告成 :)


Notes: 

  • 這邊紀錄一個小插曲, 在 Push 到遠端的時候 pending, 雖然有顯示 git output 還是資訊不足, 後來是使用 smartgit 去進行 push 動作的時候, 出現了遠端的主機 沒有記錄到 ~/.ssh/knowhost , 然後 smartgit 也讓我選我的 SSH 私鑰是那一把, 成功在 smartgit push 完之後,  vscode 這邊就沒有問題了 


往 gitlab 又前進一步

~ enjoy it


Reference

星期三, 8月 05, 2020

使用 GCP Logs Viewer 與 gcloud logging read 查詢特定事件小記

使用 GCP Logs Viewer 與 gcloud logging read 查詢特定事件小記


之前有設定當 GCP IAM 內容有改變的時候, 使用 stackdriver 快訊通知


然後會到專案的首頁的活動進行查詢



但是如果專案的活動比較頻繁的時候, 就會發現比較不好過濾出相關事件


那要如何快速找出對應的活動呢?


可以利用以下 2 種方式達成


==== Logs Viewer ====


登入 GCP console


點選 紀錄 -- > 點選 紀錄檢視器



我是使用紀錄顯示器的預覽版

可點點選上方的下拉式選單 -- > 點選 預覽新版紀錄檢視器



那要如何知道如何對特定行爲下查詢呢?


最簡單的方式就是去觀察出現的 log, 他上面會標示一些行為

以設定 IAM 來說, 該 log 就會有 SetIamPolicy  標示出來



嘗試點選 SetIamPolicy

點選 顯示相符的項目



這個時候就可以觀察到相關查詢就會被加入到查詢產生器內

例如 protoPayload.methodName=”SetIamPolicy”



就算查詢語法不熟也沒有關係, 可以多利用按鈕來達成 :)



這樣就可以快速查詢想要找的行為





==== gcloud 指令 ====


另外一種方式是透過 gcloud 指令來達成


# gcloud  logging  read  'protoPayload.serviceName=cloudresourcemanager.googleapis.com AND protoPayload.methodName=SetIamPolicy timestamp>="2020-07-15T23:59:59Z"'  --project  YOUR_PROJECT 


  • 這邊要注意的是, 不知道預設的搜尋時間區間是多長, 我猜應該是 1 小時, 所以如果要搜尋的話, 最好加上 timestamp



# gcloud  logging  read  'protoPayload.serviceName=cloudresourcemanager.googleapis.com AND protoPayload.methodName=SetIamPolicy timestamp>="2020-07-15T23:59:59Z"'  --project  YOUR_PROJECT  |  egrep  'methodName|principalEmail|bindingDeltas|action|member:|timestamp:'


  • 可以按照自己的需求 grep 要的資訊


輸出的結果參考



  • 時間的部分, 都是 UTC Time (時間結尾有 Z ), 所以要看當地時間進行調整, 台灣就是加上 8 小時


趁沒有忘記的時候趕快記下來

~ enjoy it



Reference

星期日, 8月 02, 2020

三大雲平台工具容器升級小記 - 使用 openSUSE Leap 15.2 Container

三大雲平台工具容器升級小記 - 使用 openSUSE Leap 15.2 Container


OS: container with openSUSE Leap 15.2



上次升級是 2020/5/31 , 這次會來升級的原因是 

  • 使用 openSUSE Leap 15.2

  • 升級 gcloud 版本

  • 升級 azure-cli 版本

  • 升級 aws cli 版本


先整理結果


升級前

OS: openSUSE Leap 15.1

awscli:  aws-cli/2.0.17 Python/3.7.3

gcloud: Google Cloud SDK 290.0.1

azure-cli: 2.6.0


升級後

OS: openSUSE Leap 15.2

awscli:  aws-cli/2.0.36 Python/3.7.3

gcloud: Google Cloud SDK 303.0.0

azure-cli: 2.9.1


AWS CLI v2 安裝文件


GCP Cloud SDK 版本




這次的做法還是會透過 docker build 指令來進行

  • 我有比較過 docker build 以及使用現有的 docker image 修改後再使用 docker commit 建立的 image 大小還是很有差異的


Dockerfile 的部分我是拿之前 openSUSE Leap 15.1 來修改


修改細節

  • Update time

  • 使用 openSUSE Leap 15.2

  • 修改 pip3 安裝 boto 而非 boto3

  • Google SDK 版本還有下載的檔案路徑以及檔案名稱



列出 diff 的結果給大家參考



> diff opensuseLeap152_ansible_20200802_Dockerfile  opensuseLeap151_ansible_20200531_Dockerfile 


1,2c1,2

< # openSUSE Leap 15.2 with ansible, azure-cli, aws cli, gcloud

< FROM opensuse/leap:15.2

---

> # openSUSE Leap 15.1 with ansible, azure-cli

> FROM opensuse/leap:15.1

6c6

< # update: 20200802

---

> # update: 20200509

12c12

< # Install python3-pip, upgrade pip, ansible[azure], boto

---

> # Install python3-pip, upgrade pip, ansible[azure], boto3

16c16

<   pip3 install boto

---

>   pip3 install boto3

64c64

< # Install google cloud SDK 303.0.0

---

> # Install google cloud SDK 290.0.1

66,67c66,67

< RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \

<   tar zxvf google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \

---

> RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-290.0.1-linux-x86_64.tar.gz && \

>   tar zxvf google-cloud-sdk-290.0.1-linux-x86_64.tar.gz && \









Dockerfile 內容如下


# openSUSE Leap 15.2 with ansible, azure-cli, aws cli, gcloud

FROM opensuse/leap:15.2


# Author

# MAINTAINER 已經棄用, 之後要使用 LABEL 方式

# update: 20200802

LABEL maintainer="sakana@cycu.org.tw"


# Set LANG for UTF-8 - for Chinese

ENV LANG C.UTF-8


# Install python3-pip, upgrade pip, ansible[azure], boto

RUN zypper install -y python3-pip && \

  pip3 install --upgrade pip && \

  pip3 install ansible[azure] && \

  pip3 install boto


# Install openssh, set ls alias

RUN zypper install -y openssh

RUN echo "alias ls='ls --color=tty'" >> /root/.bashrc


# Install wget, download azure_rm.py, set permission

RUN zypper install -y wget


# azure_rm.py no need to download 

# Starting with Ansible 2.8, Ansible provides an Azure dynamic-inventory plug-in

# https://docs.ansible.com/ansible/latest/plugins/inventory/azure_rm.html

# old azure_rm.py URL https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/azure_rm.py


# Create working directory in /root

RUN mkdir /root/.azure && \

  mkdir /root/.aws && \

  mkdir /root/playbook && \

  mkdir -p /root/.config/gcloud && \

  wget https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/template/ansible.cfg && \

  mv /ansible.cfg /root && \

  wget https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/template/hosts && \

  mv /hosts /root


#### Azure #### 

# Install azure-cli

RUN zypper install -y curl && \

  rpm --import https://packages.microsoft.com/keys/microsoft.asc && \

  zypper addrepo --name 'Azure CLI' --check https://packages.microsoft.com/yumrepos/azure-cli azure-cli && \

  zypper install --from azure-cli -y azure-cli


#install vim tar gzip jq unzip less bind-utils iputils groff

RUN zypper install -y vim tar gzip jq unzip less bind-utils iputils groff

RUN echo "set encoding=utf8" > /root/.vimrc


#### AWS ####

# Install awscli v1

#RUN pip3 install awscli

#RUN echo "source /usr/bin/aws_bash_completer" >> /root/.bashrc


# Install awscli v2

RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \

  unzip awscliv2.zip && \

  /aws/install

RUN echo "complete -C '/usr/local/bin/aws_completer' aws" >> /root/.bashrc


#### GCP ####

# Install google cloud SDK 303.0.0

ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1

RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \

  tar zxvf google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \

  /google-cloud-sdk/install.sh && \

  echo "if [ -f '/google-cloud-sdk/path.bash.inc' ]; then . '/google-cloud-sdk/path.bash.inc'; fi" >> /root/.bashrc && \

  echo "if [ -f '/google-cloud-sdk/completion.bash.inc' ]; then . '/google-cloud-sdk/completion.bash.inc'; fi" >> /root/.bashrc




 

使用 docker build 指令建立 image


> docker build  -t  sakana/ansible_opensuse152:20200802  -f  ./opensuseLeap152_ansible_20200802_Dockerfile   .


  • 使用 -f 指定 Dockerfile 名稱

  • 最後是 ” . “ 目前的目錄



測試 container image


> docker  run  -v  ~/.aws:/root/.aws  -v  ~/.azure:/root/.azure  -v ~/.config/gcloud:/root/.config/gcloud  -it  sakana/ansible_opensuse152:20200802  /bin/bash


測試結果 OK, 建立  tag


觀察資訊

> docker  images


REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE

sakana/ansible_opensuse152   20200802            d1bb9da2d2e1        14 seconds ago      1.66GB

opensuse/leap                15.2                b02baf32bb00        4 days ago          105MB

sakana/ansible_opensuse151   latest              0fcb15bb33a0        2 months ago        1.78GB


建立 tag 

> docker  tag  d1bb9da2d2e1  sakana/ansible_opensuse152:latest


登入 docker

> docker  login


上傳 image

> docker  push  sakana/ansible_opensuse152:20200802


> docker  push  sakana/ansible_opensuse152:latest


完工, 以後使用就用


> docker  run  -v  ~/.aws:/root/.aws  -v  ~/.azure:/root/.azure  -v ~/.config/gcloud:/root/.config/gcloud  -it  sakana/ansible_opensuse152  /bin/bash



~ enjoy it


Reference: