星期日, 2月 21, 2021

openSUSE Leap 15.2 以非互動方式註冊 GitLab runner with docker executor in Azure 小記

openSUSE Leap 15.2 以非互動方式註冊 GitLab runner with docker executor in Azure 小記


OS: openSUSE Leap 15.2 in Azure

GitLab: 使用 gitlab.com


上次的文章使用互動的方式註冊 gitlab-runner 然後是用 shell executor


今天要來實作以非互動的方式註冊 gitlab-runner 然後採取 docker 來當 executor


實作前提

  • 在 gitlab.com 有帳號 ( 免費的就可以, 有付錢的功能更多  )


確認自己的 GitLab project / Group CI / CD Runner 設定與 Token 

  • 在 GitLab.com 登入自己帳號

  • 在 Project / Group 內 的 Settings -- > CI / CD

  • 展開 Runners 就會看到 Token




接下來開始建立實驗


建立 openSUSE Leap 15.2 in Azure

  • 我是用  Cloud Shell in VS code 然後透過 ansible 建立



使用 zypper 新增 gitlab 的 repo

  • 語法  zypper ar -f <URL> <alias>


# zypper  ar  -f  https://download.opensuse.org/repositories/openSUSE:/infrastructure:/gitlab/openSUSE_Leap_15.2  gitlab


觀察相關資訊

# zypper  lr


Repository priorities are without effect. All enabled repositories share the same priority.


# | Alias               | Name                        | Enabled | GPG Check | Refresh

--+---------------------+-----------------------------+---------+-----------+--------

1 | gitlab              | gitlab                      | Yes     | ( p) Yes  | Yes

2 | repo-debug          | Debug Repository            | Yes     | ( p) Yes  | Yes

3 | repo-debug-update   | Update Repository (Debug)   | Yes     | ( p) Yes  | Yes

4 | repo-non-oss        | Non-OSS Repository          | Yes     | ( p) Yes  | Yes

5 | repo-oss            | Main Repository             | Yes     | ( p) Yes  | Yes

6 | repo-source         | Source Repository           | Yes     | ( p) Yes  | Yes

7 | repo-update         | Main Update Repository      | Yes     | ( p) Yes  | Yes

8 | repo-update-non-oss | Update Repository (Non-Oss) | Yes     | ( p) Yes  | Yes


匯入  GPG Key 與 refresh repo

# zypper  --gpg-auto-import-keys  refresh


安裝 gitlab-runner

# zypper   install  -y  gitlab-runner


啟動 docker 服務

# systemctl  start  docker


設定 docker 開機時啟動

# systemctl  enable  docker


使用 gitlab-runner register 搭配 --non-interactive 方式非互動註冊

# gitlab-runner  register --non-interactive  --url  https://gitlab.com  --registration-token YOUR_TOKEN    --executor  docker --docker-image  opensuse/leap:latest  --name  test-gitlab-runner-docker   --tag-list  "opensuse-docker"


  • --url 與 --registration-token 請換成自己要註冊的 Server 與 token

  • --executor 指定 docker 方式 並指定預設的 docker image 爲 opensuse/leap:latest

  • --name 指定名稱

  • --tag-list 指定 tag


觀察相關資訊

# cat   /etc/gitlab-runner/config.toml


concurrent = 1

check_interval = 0


[session_server]

  session_timeout = 1800


[[runners]]

  name = "test-gitlab-runner-docker"

  url = "https://gitlab.com"

  token = "5kYxjqvGPPy63Vus_W66K"

  executor = "docker"

  [runners.custom_build_dir]

  [runners.cache]

    [runners.cache.s3]

    [runners.cache.gcs]

  [runners.docker]

    tls_verify = false

    image = "opensuse/leap:latest"

    privileged = false

    disable_entrypoint_overwrite = false

    oom_kill_disable = false

    disable_cache = false

    volumes = ["/cache"]

    pull_policy = "always"

    shm_size = 0


  • 這邊的 token 是 runner 的 token


啟動 gitlab-runner

# gitlab-runner  start


觀察相關資訊

# gitlab-runner  status


也可以到 Gitlab 上面觀察



又前進一步

下次預計來弄 ansible playbook :)


~ enjoy it


Reference:



星期一, 2月 08, 2021

openSUSE Leap 15.2 as GitLab runner in Azure 小記

openSUSE Leap 15.2 as GitLab runner in Azure 小記


OS: openSUSE Leap 15.2 in Azure

GitLab: 使用 gitlab.com


最近開始學 GitLab

先感謝 陳正瑋 的鐵人賽文章以及 和艦長一起30天玩轉 GitLab 書籍

入門多了很多的資訊


今天要來寫的是把 openSUSE Leap 15.2 當成 gitlab runner 來執行

爲何要寫這篇呢? 當然是因為官方的文件上沒有列出 openSUSE 安裝方式 :)


那就只好自己嘗試, 然後記錄下來了 (攤手)


實作前提

  • 在 gitlab.com 有帳號 ( 免費的就可以, 有付錢的功能更多  )


確認自己的 GitLab project / Group CI / CD Runner 設定與 Token 

  • 在 GitLab.com 登入自己帳號

  • 在 Project / Group 內 的 Settings -- > CI / CD

  • 展開 Runners 就會看到 Token




接下來開始建立實驗


建立 openSUSE Leap 15.2 in Azure

  • 我是用  Cloud Shell in VS code 然後透過 ansible 建立的 ~ 開心



回到 gitlab 身上來

如果在 software.opensuse.org 上面搜尋 gitlab-runner



  • 這邊其實就有看到實驗性套件了


使用 ssh 連入剛剛的 openSUSE Leap 15.2 in Azure


使用 yast  repositories 新增套件庫


#yast  repositories


新增套件庫 (Alt + A)

方式選取 指定 URL



點選下一步 (Alt + N)

套件庫的名稱可以自行取

URL 的部分指定 



點選下一步 (Alt + N)

有遇到 GnuPG Key 可以 Trust 一下



確認 GitLab 套件庫有被加入

點選 OK (Alt + O)



接下來新增相關套件


# zypper   install  gitlab-runner


Loading repository data...

Reading installed packages...

Resolving package dependencies...


The following 5 NEW packages are going to be installed:

  dash gitlab-common gitlab-runner libruby2_6-2_6 ruby2.6


5 new packages to install.

Overall download size: 12.6 MiB. Already cached: 0 B. After the operation, additional 52.3

MiB will be used.

Continue? [y/n/v/...? shows all options] (y): y



註冊 gitlab-runner


# gitlab-runner  register


輸入 https://gitlab.com

輸入 Gitlab-runner token

輸入 這個 runner 的敘述

輸入 這個 runner 的 tag ( 這個很重要 )

輸入 這個 runner 的 executor ( 一般都是 docker or shell, 請見官方文件 )



啟動 gitlab-runner

# gitlab-runner  start


Runtime platform                                    arch=amd64 os=linux pid=3192 revision=1b659122 version=12.8.0


觀察相關資訊

# gitlab-runner  status


Runtime platform                                    arch=amd64 os=linux pid=3210 revision=1b659122 version=12.8.0

gitlab-runner: Service is running!


Notes:

  • Runner 的 config 會存放在 /etc/gitlab-runner/config.toml

  • 要成為 gitlab-runner 也要安裝 git 不然執行會出現錯誤

  • 執行的時候相關工作目錄會在 /srv/gitlab-runner/builds/GITLAB-RUNNER-TOKEN/ 下


在 GitLab.com 上面確認 runner 有設定成功



找時間要看的文件

Disable SKEL 說明

https://docs.gitlab.com/runner/install/linux-repository.html#disable-skel


Gitlab runner 安裝說明

https://docs.gitlab.com/runner/install/linux-repository.html



這樣算是又向 GitLab 前進一步了

~ enjoy it



Reference:




星期四, 2月 04, 2021

VS code Azure Account extension 小記

VS code Azure Account extension 小記


OS: openSUSE Leap 15.2

vscode: 1.52.1

Extension: Azure Account v0.9.5


今天要來寫 Azure Account extension in vscode


在很多實驗情境的時候, 可能會使用 vscode 來撰寫 shell script 或是 ansible playbook 來對雲端上面的機器進行實驗. 甚至是使用 Remote SSH 在雲端上面開發.


在 Azure 的使用上面, 我就常常使用到 Cloud Shell 來進行 ansible playbook 的佈署.


VS code 對我最亮眼的地方就是有一大推好用的 Extension.

今天要來寫的就是 Azure Account 這個 extension. 我主要用來在 vscode 內開啟 Bash 版本 Cloud Shell 


安裝方式


開啟 vscode

點選左側 Extension 圖示, 搜尋 Azure 可以找到 Azure Account 這個 Extension



點選 Install 進行安裝 


在 vscode 內 點選 View -- > Command Palette (或是按 Ctrl + Shift + P)



選取 Azure: Open Bash in Cloud Shell



如果還沒有登入 Azure, 會被要求登入 Azure


順利的話就會在 vscode 內開啟 Cloud Shell :)



接下來就可以快樂的在 vscode 內開啟 Cloud Shell 來進行管理 



不用開啟 Azure Portal 真是方便 :)


同場加映: 如果碰到要開啓 Cloud Shell 要求選取目錄導致無法開啟的問題


請見 https://github.com/microsoft/vscode-azure-account/issues/220


解法 

  • 登入 Azure Portal

  • 開啟 Cloud shell

  • 輸入 az account list

  • 複製 tenantId

  • 開啟 VS code

  • 點選 Azure Account extension 設定



在Azure: Tenant 設定將剛剛的 tenantId 貼上去



這樣就解決了

再次感謝 DanielMOliveira 

這個 issue 我也開了快五個月 :p


又向 Azure 前進一步


~ enjoy it


Reference: