RHEL8安裝Jenkins串接K8S為Agent1
首先在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內建立jenkins的SA(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
大概跑一兩分鐘後: