Devops 改變 coding —— 安裝個指定版本的 jenkins 發現和想象的不太一樣?

小猿來也發表於2021-06-29

你好呀,我是小猿來也,一個剛開始折騰 Devops 的程式猿。

寫在前面

前兩天在池大那裡看到了一段話,原話出自美團首席科學家夏華夏老師,具體內容我貼到了下面。

對於圖片裡的內容你們是怎麼認為的呢?我呢,剛好最近在和同事一起折騰 jenkins,我覺得這裡說的就是一個類 "Devops" 的化處理思想,Devops改變世界。

用 jenkins折騰 各種 Devops 的使用場景,還挺好玩的。

這兩天想著在自己的電腦上也裝一個 jenkins 的環境。

查了下生產環境的 jenkins 版本是2.263.4。為了儘量和生產環境的 jenkins 保持一致,強迫症的我決定在自己的筆記本上也裝這個版本。

一、安裝前的掙扎

因為手裡的筆記本是 macOS,所以就先去 jenkins 官網上翻了翻。

然後通過 https://www.jenkins.io/zh/download/
進入到 https://www.jenkins.io/download/lts/macos/ 這個頁面。

這個頁面給出的指示表明我們可以使用brew install jenkins-lts@YOUR_VERSION來安裝我想要的2.263.4這個版本。

懷著很期待的心情,我決定試一試。

$ brew install jenkins-lts@2.263.4
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "jenkins-lts@2.263.4".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.

然並卵,結果我發現 Homebrew 找不到這個版本,是我開啟的方式不對嗎?有點尷尬哈。

https://www.jenkins.io/download/lts/macos/ 這個頁面繼續往下看,
結果在下圖中紅框的位置發現了 macOS 原生安裝包的下載入口 https://get.jenkins.io/osx-stable/

於是進入 https://get.jenkins.io/osx-stable/ 的頁面

翻了一遍發現這裡提供的最低版本是jenkins-1.409.1.pkg,最高版本是jenkins-2.235.2.pkg,沒有我需要的2.263.4這個版本,再次尷尬。

於是我再次回到 https://www.jenkins.io/download/lts/macos/ 這個頁面,這個頁面裡有一行文字引起了我的注意。

Native Installer (deprecated)

然後我這才意識到官方好像應該是不再支援用新的 pkg 原生包安裝 jenkins 了。

同樣在官方部落格的網頁
Jenkins macOS native installer deprecation:https://www.jenkins.io/blog/2019/11/25/macos-native-installer-deprecation/ 中,
的確有棄用 jenkins macOS 本機安裝程式的說明。

網頁中有一段說明我截了圖,大致是的意思是說作為對棄用 jenkins macOS 本機安裝程式的替代,mocOS 下你可以直接使用 War 包或者使用 Homebrew 來安裝管理 jenkins。

There are two Homebrew formulas for Jenkins: jenkins for Weekly releases and jenkins-lts for LTS ones.

官方部落格中指出可以使用brew install jenkins安裝 jenkins 的最新每週版本。
使用brew install jenkins-lts安裝 jenkins 的最新LTS版本。
同樣指出可以使用brew install jenkins@YOUR_VERSION安裝 jenkins 特定的每週版本。

所以現在根據官方部落格的說法

我們可以使用brew install jenkins-lts安裝 jenkins 的最新LTS版本。

可以使用brew install jenkins-lts@YOUR_VERSION安裝 jenkins 的特定的LTS版本。

可以使用brew install jenkins安裝 jenkins 的最新每週版本。

可以使用brew install jenkins@YOUR_VERSION安裝 jenkins 的特定的每週版本。

文章開頭的時候我們已經嘗試了用brew install jenkins-lts@2.263.4來進行安裝,結果根本不好使。
現在我打算嘗試下用brew install jenkins@2.263.4來進行安裝。

$ brew install jenkins@2.263.4
Updating Homebrew...
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "jenkins@2.263.4".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.

同樣也無法正常進行安裝。

好吧本來想偷個懶,結果。。。
我們就乖乖的使用 war 包的方式進行安裝吧。

war 包下載 的入口在官網的下載網頁中,就是下圖中我圈出來的位置。

進入之後發現從1.409.12.289.1之間所有的lts版在這裡都可以下載,當然也包含我想要的2.263.4版本。

這個時候我們可以選擇指定的版本對應的連結,進入對應的頁面去直接下載,當然我這裡選擇的是 2.263.4

我們也可以選擇使用下面的命令來下載。

wget https://get.jenkins.io/war-stable/2.263.4/jenkins.war

二、安裝jenkins

程式賬號建立

# 建立組
sudo dscl . create /Groups/jenkins gid 5555
# 建立使用者
sudo dscl . create /Users/jenkins uid 7777
sudo dscl . create /Users/jenkins gid 5555 
sudo dscl . create /Users/jenkins shell /bin/bash
# 修改使用者的密碼
sudo passwd jenkins
# 建立使用者的home目錄
sudo  mkdir /Users/jenkins
# 使用者的home目錄宿主
sudo chown -R jenkins:jenkins /Users/jenkins
# 宣告使用者的home目錄
sudo dscl . create /Users/jenkins home /Users/jenkins

macOS可以使用dscl 管理使用者,瞭解更多你可以點選檢視

準備jenkins的執行目錄

# 切換當前使用者為 jenkins
$ su - jenkins
jenkins$ whoami
jenkins

# 準備程式安裝包目錄
jenkins$ pwd
/Users/jenkins
jenkins$ mkdir soft
jenkins$ ls
soft
jenkins$ cd soft/
jenkins$ wget https://get.jenkins.io/war-stable/2.263.4/jenkins.war
jenkins$ ls
jenkins.war

# 準備程式執行目錄
jenkins$ cd /Users/jenkins/
jenkins$ mkdir 2.263.4
jenkins$ ls
2.263.4	soft

啟動jenkins

jenkins$ java -jar -Xmx4096m -DJENKINS_HOME=/Users/jenkins/2.263.4 /Users/jenkins/soft/jenkins.war --httpPort=9999
Running from: /Users/jenkins/soft/jenkins.war
webroot: System.getProperty("JENKINS_HOME")
.
.
.
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

ecc86b654f3a4e0bbeb4e2df962839a0

This may also be found at: /Users/jenkins/2.263.4/secrets/initialAdminPassword
.
.
.

啟動的過程中我們可以看到 jenkins 管理員使用者的初始化密碼會寫在的
${JENKINS_HOME}/secrets/initialAdminPassword中,
我的這個實驗是在/Users/jenkins/2.263.4/secrets/initialAdminPassword這個檔案中,你在實驗過程可能會稍有不同。

三、初識jenkins

入門指引

jenkins 啟動完成之後,我們訪問 http://localhost?{port}/ (我這裡的埠是9999)即可進入jenkins的頁面。

首次訪問即可看到 jenkins 的入門指引,接下來你會依次看到下面的介面。

這個時候我們可以選擇使用admin賬戶繼續(jenkins 安裝時自動建立 admin 使用者)也可以選擇建立新的 admin 使用者,這裡我們選擇使用已有的 admin 賬戶繼續。

你已跳過建立admin使用者的步驟。要登入請使用使用者名稱 "admin" 及用於訪問安裝嚮導的管理員密碼。

點選開始使用 jenkins

首頁的中間部分主要提供了一些 jenkins 新手可能會用到的連結,第一個便是任務建立連結。

然後是 agent 設定連結

接著是叢集配置的連結

最後是分散式構建的相關文件的連結。
https://www.jenkins.io/redirect/distributed-builds
https://wiki.jenkins.io/display/JENKINS/Distributed+builds

主要選單

首頁的左邊是常用的功能選單的連結。依次分別是"新建Item","使用者列表","構建歷史","Manage Jenkins","My Views"等。
我們先看下"Manage Jenkins"吧,點選進入。

部分外掛由於缺少依賴無法載入。要恢復這些外掛提供的功能,需要修復這些問題並重啟 Jenkins。

按照頁面的提示我們需要重啟一下就 jenkins 這樣才能使外掛生效,然後我們在瀏覽器裡輸入http://localhost:9999/restart

點選"是"之後會在"重啟中"頁面的頁面停留片刻

等到 jenkins 重啟完成之後,頁面會自動跳轉到登陸頁面。

在登陸頁面中輸入 admin 以及它的密碼(jenkins 安裝時自動建立的使用者,密碼資訊啟動日誌中有)再次進入 jenkins 的首頁,
發現頁面的選單顯示跟重啟之前有一些差別,應該是重啟之後本地化外掛生效了,選單以中文的形式顯示。

再次進入到"系統管理"選單中,我們同樣發現頁面中選單以中文的形式展示出來了,同時重啟之前的那一片紅色的提示已經消失。

Job Demo

準備好了 jenkins,我們趕緊來跑個 job 試下吧。例子很簡單就是用 jenkins job 列印出 "jenkins hello world"。

建立job。

配置job。

執行job。

job執行記錄列表。

job執行日誌。

Job正常執行並列印出“jenkins hello world”。

管理密碼修改(重要)

最後由於我們一直使用的是 jenkins 安裝時自動設定的密碼,這個密碼在上面的安裝日誌中有輸出。

同時在${JENKINS_HOME}/secrets/initialAdminPassword這個檔案中也有儲存。

所以會存在一定的安全隱患,為了避免不必要的麻煩,所以這裡我們需要把 admin 的密碼修改一下了。
它的操作步驟是在"系統管理"裡找到"管理使用者"

點選"管理使用者"的連結進入"使用者列表",在給出的所有使用者列表中找出 admin 使用者,點選它的設定按鈕。

進入 admin 使用者的資訊更新頁面,下拉到密碼設定的區域,錄入新的密碼資訊提交即可。

重新訪問http://localhost:9999/在跳轉的登陸頁面中錄入 admin 使用者的新密碼可以正常登陸就說明 admin 使用者的密碼更新成功了。

最後的最後,不知道是不是我的開啟方式不對,居然無法使用 Homebrew 安裝指定版本的 jenkins,你是如何安裝的呢?

相關文章