RHEL8安裝Jenkins串接K8S為Agent4

改用RedHat Agent image

ZONGRU Li
7 min readJul 6, 2022

基於前面成功的Jenkins搭配OCP的第二篇筆記(LINK)

進階的一些研究

準備採用RedHatJenkins Agent image(LINK):

基本環境先弄到跟第二篇筆記一樣

建立jenkinsnamespace,還有ServiceAccountjk

並且把config檔放到Jenkins Container~/.kube底下

#執行以下指令建立Jenkins的Container:
sudo podman run -p 8080:8080 -p 50000:50000 -d \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
#整理上述一些指令:
sudo tar zxvf openshift-client-linux.tar.gz -C /usr/local/bin
#確認Container id,並把工具放進去:
sudo podman ps
sudo podman cp /usr/local/bin/oc {Container id}:/usr/local/bin
#進去Jenkins Container建立k8s(OCP)身分目錄(home目錄是/var/jenkins_home):
sudo podman exec -it {Container id} bash
mkdir -p ~/.kube
exit
#sudo podman cp {OCP下載的身分config檔} {Container id}:/var/jenkins_home/.kube/config

理論上這時候就能在Jenkins內,對OCP上的jenkins的NameSpace操作

另外這次除了k8s外,額外加入Blue OceanPlugin

最後勾起來WebSocket後儲存:

並先用之前試過的pipeline跑看看:

順離執行完成

接著要確定怎麼拉到RedHat上的Jenkins Agent Image來用

先簡單用podman pull指令來試試:

LINK
LINK

後面就是要看要登哪個帳號...

整理所需要的指令如下:

#指令:
sudo podman login registry.redhat.io
Username: {REGISTRY-SERVICE-ACCOUNT-USERNAME}
Password: {REGISTRY-SERVICE-ACCOUNT-PASSWORD}
Login Succeeded!
sudo podman pull registry.redhat.io/openshift4/ose-jenkins-agent-maven:v4.10.0-202206270836.p0.gc5b7159.assembly.stream

實際上沒有產出auth.json

所以先參考以下連結建立帳號:

一開始會先登入RH的一般會員帳號

然後就會進到以下畫面:

填表:

重新嘗試podman login:

#先登出:
sudo podman logout registry.redhat.io
#再登入:
sudo podman login registry.redhat.io

後來發現1000是我目前登入的帳號(ec2-user)uid

所以不用sudo來登入就可以了:

但是pull image時還是有錯誤:

爬文看到:

LINK
LINK

補執行以下:

#執行以下指令:sudo podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release registry.access.redhat.comsudo podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release registry.redhat.iosudo cat <<EOF > /etc/containers/registries.d/registry.access.redhat.com.yaml
docker:
registry.access.redhat.com:
sigstore: https://access.redhat.com/webassets/docker/content/sigstore
EOF
sudo cat <<EOF > /etc/containers/registries.d/registry.redhat.io.yaml
docker:
registry.redhat.io:
sigstore: https://registry.redhat.io/containers/sigstore
EOF

以上暫時卡住

(次日補充再次確定依照這個解說設置:https://access.redhat.com/articles/3116561)

最後有成功拉到,但是昨天也是一樣設置,就拉不到,很怪!

先建立auth.jsonSECRET元件

然後直接撰寫一個pipeline Job:

執行後有順利跑完:

過程在OCP的開發者模式的Topology也能看到執行的pod運作,之後會消失

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

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

No responses yet