《前端運維》四、Jenkins--持續構建

Zaking發表於2022-03-27

  首先,我們先來了解下什麼叫做持續構建。持續構建簡稱CI,負責拉取程式碼庫中的程式碼後,執行使用者預定義的指令碼,通過一系列編譯操作構建出一個製品,並將製品推送到製品庫裡。常用的持續構建工具有 Gitlab CI,Github CI,Jenkins等。這個環節不參與部署,只負責構建程式碼,然後儲存構建物,構建物被稱為製品,儲存製品的地方被稱為製品庫。

  另外,我們來了解下什麼是持續部署和持續交付,它們可以統稱為CD,即Continuous Deployment和Continuous Delivery。持續部署的概念是:將製品庫中的製品拿出來後,部署在測試環境,交付給客戶提前測試。持續部署則是將製品部署在生產環境。所以你看,其實持續部署和持續交付的含義類似,只是物件不同。

  今天我們的核心就是學一下Jenkins持續構建,整體的持續構建的思路類似下圖,當然,這個不是絕對的,具體的場景會有區別:

  下面,我們就來看一下使用Jenkins實現持續構建的全過程,哦對,在開始之前,如果你學了之前的內容,請先清空你的伺服器,就重置一下就行,之前說過阿里雲怎麼重置,如果是其他的雲伺服器,可以百度下。

  先執行以下命令,更新下系統包:

yum install -y yum-utils device-mapper-persistent-data lvm2

  然後,我們來安裝下docker:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker

  然後,我們來安裝下docker的阿里映象,之前學docker的時候也玩過了:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fwvjnv59.mirror.aliyuncs.com"]
}
EOF
# 過載所有修改過的配置檔案
sudo systemctl daemon-reload
sudo systemctl restart docker

  然後,我們來安裝下Jenkins,Jenkins 是一個基於 Java 語言開發的持續構建工具平臺,主要用於持續、自動的構建/測試你的軟體和專案。它可以執行你預先設定好的設定和構建指令碼,也可以和 Git 程式碼庫做整合,實現自動觸發和定時觸發構建。

  先安裝一下Java:

yum install -y java

  然後安裝Jenkins:

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
sudo yum install jenkins java-11-openjdk-devel
sudo systemctl daemon-reload

  然後,我們來啟動以下Jenkins:

systemctl start jenkins.service

  然後,我們需要開放埠,或者關閉防火牆都行:

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=50000/tcp --permanent
systemctl reload firewalld

  看到這樣的提示,說明沒有啟動防火牆,ok,就這樣就行:

 

   然後,我們現在就可以訪問Jenkins了,在你的本地的瀏覽器上輸入ip及埠號8080即可。有一個要注意的是,阿里雲要開啟對應的埠才能訪問:

   點選後進入:

   手動新增,然後儲存即可。

  然後,檢視下密碼,頁面上有提示,在命令列看一下就可以了:

cat /var/lib/jenkins/secrets/initialAdminPassword

  然後,就進來咯。

  先不要安裝,如果你的網速夠快,可以直接安裝,否則,可以先執行下面的命令,修改外掛映象:

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /var/lib/jenkins/updates/default.json

  然後,去頁面裡安裝推薦外掛就好了。安裝完了之後就這樣了,自己註冊吧:

   然後,我們新建一個item:

 

  然後,內容如下圖,輸入即可,選擇freestyle,然後確定:

  然後寫個描述,儲存:

   然後點選立即構建:

   然後,點選紅框可以看到日誌,就跟我們們平常工作用到的Jenkins很類似了:

   ok,其實到這裡,你的Jenkins就搞定了,但是感覺啥也沒學會是不是,沒關係,我們們繼續往下來。

   然後,我們回到第一個測試任務,點選配置:

  然後,選擇構建環境,執行shell選項:

 

   然後,我們來執行個docker命令:

 

   然後,點選應用,再點選儲存。然後,再去構建一下,不出意料地失敗了:

 

  原因是我們的Jenkins不能訪問docker服務,所以我們把Jenkins新增到docker的使用者組裡,然後就可以再去構建一下:

groupadd docker
gpasswd -a jenkins docker
newgrp docker
systemctl start docker.service
systemctl restart jenkins.service

  上面命令的含義就不解釋了啊。都懂的。然後再構建一次,就成功了。我就不貼圖了。自己看吧。下面我們給任務加一個node環境。點選Dashboard,然後系統管理,然後點選外掛管理:

 

   然後呢,搜尋nodejs,選中,安裝並重啟:

  然後我們再選全域性工具配置:

  然後選擇nodejs,起個隨便的別名,然後新增安裝,可選官網或者映象,都可以啦:

   然後點選後面的應用和儲存。我們之前設定好了環境,然後,我們再進入任務中的配置,選擇node 那個選項,應用並儲存:

  然後,再構建一下任務:

  然後,下面你需要一個git倉庫的專案,你可以用github或者其他任何一個git倉庫工具。假設你現在已經有了git專案。然後,記得伺服器要安裝git哦:

   到這裡,基本上Jenkins的部分就完事了,我們聊的也不過九牛一毛,更多的用法,還需要大家自己去實踐一下。

相關文章