Devops 改變 coding —— 安裝個指定版本的 jenkins 發現和想像的不太一樣?
- 2021 年 6 月 29 日
- 筆記
- Devops 拯救 coding, Jenkins
你好呀,我是小猿來也,一個剛開始折騰 Devops 的程序猿。
寫在前面
前兩天在池大那裡看到了一段話,原話出自美團首席科學家夏華夏老師,具體內容我貼到了下面。
對於圖片里的內容你們是怎麼認為的呢?我呢,剛好最近在和同事一起折騰 jenkins,我覺得這裡說的就是一個類 “Devops” 的化處理思想,Devops改變世界。
用 jenkins折騰 各種 Devops 的使用場景,還挺好玩的。
這兩天想着在自己的電腦上也裝一個 jenkins 的環境。
查了下生產環境的 jenkins 版本是2.263.4
。為了盡量和生產環境的 jenkins 保持一致,強迫症的我決定在自己的筆記本上也裝這個版本。
一、安裝前的掙扎
因為手裡的筆記本是 macOS,所以就先去 jenkins 官網上翻了翻。
然後通過 //www.jenkins.io/zh/download/
進入到 //www.jenkins.io/download/lts/macos/ 這個頁面。
這個頁面給出的指示表明我們可以使用brew install jenkins-lts@YOUR_VERSION
來安裝我想要的2.263.4
這個版本。
懷着很期待的心情,我決定試一試。
$ brew install [email protected]
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "[email protected]".
==> 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 找不到這個版本,是我打開的方式不對嗎?有點尷尬哈。
在 //www.jenkins.io/download/lts/macos/ 這個頁面繼續往下看,
結果在下圖中紅框的位置發現了 macOS 原生安裝包的下載入口 //get.jenkins.io/osx-stable/ 。
於是進入 //get.jenkins.io/osx-stable/ 的頁面
翻了一遍發現這裡提供的最低版本是jenkins-1.409.1.pkg
,最高版本是jenkins-2.235.2.pkg
,沒有我需要的2.263.4
這個版本,再次尷尬。
於是我再次回到 //www.jenkins.io/download/lts/macos/ 這個頁面,這個頁面里有一行文字引起了我的注意。
Native Installer (deprecated)
然後我這才意識到官方好像應該是不再支持用新的 pkg 原生包安裝 jenkins 了。
同樣在官方博客的網頁
Jenkins macOS native installer deprecation://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 [email protected]
來進行安裝,結果根本不好使。
現在我打算嘗試下用brew install [email protected]
來進行安裝。
$ brew install [email protected]
Updating Homebrew...
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "[email protected]".
==> 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.1
到2.289.1
之間所有的lts版在這裡都可以下載,當然也包含我想要的2.263.4
版本。
這個時候我們可以選擇指定的版本對應的鏈接,進入對應的頁面去直接下載,當然我這裡選擇的是 2.263.4。
我們也可以選擇使用下面的命令來下載。
wget //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 //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 啟動完成之後,我們訪問 //localhost😒{port}/ (我這裡的端口是9999)即可進入jenkins的頁面。
首次訪問即可看到 jenkins 的入門指引,接下來你會依次看到下面的界面。
這個時候我們可以選擇使用admin賬戶繼續(jenkins 安裝時自動創建 admin 用戶)也可以選擇創建新的 admin 用戶,這裡我們選擇使用已有的 admin 賬戶繼續。
你已跳過創建admin用戶的步驟。要登錄請使用用戶名 “admin” 及用於訪問安裝嚮導的管理員密碼。
點擊開始使用 jenkins
首頁的中間部分主要提供了一些 jenkins 新手可能會用到的鏈接,第一個便是任務創建鏈接。
然後是 agent 設置鏈接
接着是集群配置的鏈接
最後是分佈式構建的相關文檔的鏈接。
//www.jenkins.io/redirect/distributed-builds
//wiki.jenkins.io/display/JENKINS/Distributed+builds
主要菜單
首頁的左邊是常用的功能菜單的鏈接。依次分別是”新建Item”,”用戶列表”,”構建歷史”,”Manage Jenkins”,”My Views”等。
我們先看下”Manage Jenkins”吧,點擊進入。
部分插件由於缺少依賴無法加載。要恢復這些插件提供的功能,需要修復這些問題並重啟 Jenkins。
按照頁面的提示我們需要重啟一下就 jenkins 這樣才能使插件生效,然後我們在瀏覽器里輸入//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 用戶的信息更新頁面,下拉到密碼設置的區域,錄入新的密碼信息提交即可。
重新訪問//localhost:9999/
在跳轉的登陸頁面中錄入 admin 用戶的新密碼可以正常登陸就說明 admin 用戶的密碼更新成功了。
最後的最後,不知道是不是我的打開方式不對,居然無法使用 Homebrew 安裝指定版本的 jenkins,你是如何安裝的呢?