一.jenkins簡介
Jenkins是開源CI&CD軟體上司者, 提供超過1000個插件來支援建構、部署、自動化, 滿足任何項目的需要。
Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運作,也可獨立運作。
CI(Continuous integration持續內建)持續內建強調開發人員送出了新代碼之後,立刻進行建構、(單元)測試
CD(Continuous Delivery持續傳遞) 是在持續內建的基礎上,将內建後的代碼部署到更貼近真實運作環境(類生産環境)中
二.jenkins安裝
官網下載下傳
清華鏡像站下載下傳
server2
yum install jdk-8u171-linux-x64.rpm jenkins-2.283-1.1.noarch.rpm -y #解決依賴
systemctl start jenkins
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml #更新插件源
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
systemctl restart jenkins
通路: http://172.25.2.2:8080
使用初始密碼登入:cat /var/lib/jenkins/secrets/initialAdminPassword
安裝預設插件即可,使用admin使用者,登入後修改密碼
cd /var/lib/jenkins/updates #更新插件下載下傳源
sed -i.bak 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
sed -i 's/http:\/\/www.google.com/http:\/\/www.baidu.com/g' default.json
三.jenkins使用
server1 gitlab
vim index.html
git add index.html
git commit -m "add index"
git push origin master
(一)jenkins簡單使用,jenkins主動更新gitlab倉庫
1.建立一個自由風格任務:
2.源碼管理
3.添加通路git倉庫的私鑰
[[email protected] .ssh]# cat /root/.ssh/id_rsa
[[email protected] updates]# yum install git -y
4.定義輪詢間隔,有更新時觸發jinkens建構
5.建構選擇執行shell指令
Git送出代碼到gitlab,jinkens輪詢檢測到代碼倉庫的變更,觸發建構
6.控制台輸出
(二)gitlab自動觸發jenkins
1.添加gitlab插件
2.在jenkins即server2上建構觸發器,在gitlab即server1上的項目中建立內建設定
3.測試
(三)Jenkins自動建構docker鏡像,并上傳至harbor倉庫
server2
yum install docker-ce -y
systemctl enable --now docker
docker info
sysctl -a | grep bridge-nf-call-iptables
vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
sysctl --system
vim /etc/docker/daemon.json #鏡像加速
docker pull nginx
docker pull registry #拉取本地倉庫
docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry #部署本地倉庫
ll /var/run/docker.sock
chmod 777 /var/run/docker.sock #id jenkins,給予他權限
server1
vim Dockerfile #鏡像建構清單
FROM nginx
COPY index.html /usr/share/nginx/html
git add Dockerfile
git commit -m "add Dockerfile"
git push origin master
當把編寫好的dockerfile送出至gitlab時,自動在jenkins中建構鏡像并上傳到registry倉庫