RHEL8安裝Jenkins串接K8S為Agent4
基於前面成功的Jenkins搭配OCP的第二篇筆記(LINK)
進階的一些研究
準備採用RedHat的Jenkins Agent image(LINK):
基本環境先弄到跟第二篇筆記一樣
建立jenkins的namespace,還有ServiceAccount叫jk
並且把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 Ocean的Plugin
最後勾起來WebSocket後儲存:
並先用之前試過的pipeline跑看看:
順離執行完成
接著要確定怎麼拉到RedHat上的Jenkins Agent Image來用
先簡單用podman pull指令來試試:
後面就是要看要登哪個帳號...
整理所需要的指令如下:
#指令:
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時還是有錯誤:
爬文看到:
補執行以下:
#執行以下指令: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
EOFsudo 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.json的SECRET元件
然後直接撰寫一個pipeline Job:
執行後有順利跑完:
過程在OCP的開發者模式的Topology也能看到執行的pod運作,之後會消失