RHEL8安裝Jenkins串接K8S為Agent1

RHEL8安裝Jenkins串接K8S為Agent — 事前環境準備

ZONGRU Li
Jun 26, 2022

首先在RHEL8的機台建立Jenkins Container:

  • 1.安裝三海豹(其實是container-tools,裡面包含三海豹)
  • 2.透過三海豹建立Jenkins Container

第一項可以參考"RHEL8 三海豹安裝與容器內使用研究"

#執行以下指令來查看可用的模組:
sudo yum module list
#執行上述工具安裝執行:
sudo yum module install container-tools

接著就是完成第二項 →透過三海豹建立Jenkins Container

#執行以下指令建立Jenkins的Container:
sudo podman run -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts

初期準備就完成了

再來需要跟K8S平台串接,這邊串的是OCP環境

方便點就需要有oc client工具,所以把一份oc client搬上去:

#在機台上執行上述檔案解壓縮,並指定到使用者的執行路徑:
sudo tar zxvf openshift-client-linux.tar.gz -C /usr/local/bin
#透過以下指令確認可以正常使用:
oc whoami

但是實際上是要給Jenkins Container內使用

所以要搬到Jenkins Container內的/usr/local/bin/:

#執行以下指令搬到Jenkins Container內:
sudo podman cp {oc工具檔案} {jenkins容器id}:/usr/local/bin/

設置OCP的環境相關:

首先直接透過Web Console建立要來玩的NameSpace — jenkins:

在上述ns內建立jenkinsSA(ServiceAccount)叫jk就好

此時可以拿到憑證檔案來用:

丟上Jenkins機台:

搬上機台後,首先要把它擺在該使用者的~/.kube底下,並且命名為config

而這邊是Jenkins容器內要使用,所以先進到容器內建立好目錄

再把剛剛的SA(ServiceAccount)身分檔搬進去放(記得改名為config)

#陸續執行以下指令:
sudo podman exec -it {jenkins container id} bash
mkdir -p ~/.kube
#然後暫時離開Jenkins Container:
exit
#把剛剛的SA(ServiceAccount)身分檔搬進去:
sudo podman cp {剛剛拿到的身分檔} {jenkins容器id}:/var/jenkins_home/.kube/config

再次進去Jenkins容器內確認可以執行oc指令:

#進到Jenkins Container內確認oc指令及執行的身分:
sudo podman exec -it {jenkins container id} bash
oc whoami

設置jk這個SA角色與權限(role & rolebinding元件建立)

我這邊偷懶,role直接拿預設就有的"edit":

所以我只差RoleBindingS元件:

完成Jenkins Web建置,進到該機台的http://{IP}:8080

大概跑一兩分鐘後:

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet