Linux安裝(十九)之jenkins的安裝
阿新 • • 發佈:2022-05-15
持續整合環境-Jenkins的安裝
jenkins的官網
https://www.jenkins.io/zh/
中國映象
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
把安裝包上傳到伺服器,進行安裝
rpm -ivh jenkins-2.277.4-1.1.noarch.rpm修改Jenkins配置
vim /etc/sysconfig/jenkins修改內容如下:注意:如果使用者使用預設,則需要在系統上建立jenkins使用者
JENKINS_USER="root" JENKINS_PORT="8888"啟動Jenkins
systemctl start jenkins
開啟瀏覽器訪問
地址:8888
注意:需要開啟防火牆哦
使用 sudo systemctl start jenkins
命令啟動Jenkins服務提示如下錯誤:
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
按照提示使用 systemctl status jenkins.service 命令檢視Jenkins服務的狀態:
注意紅框處標註的位置,/usr/bin/java 是Jenkins配置檔案中的預設java路徑,而主機上安裝的java路徑不是這個,首先使用 java -version 命令檢視已安裝的java版本,如果版本低於1.8,需要將java版本升級到1.8或更新的版本,確認java版本符合要求後使用以下命令檢視本機安裝的java路徑
which java
然後修改Jenkins配置檔案中的java路徑
vi /etc/init.d/jenkins
執行 systemctl daemon-reload 命令重新載入配置檔案 執行 sudo systemctl start jenkins 命令啟動Jenkins 執行 systemctl status jenkins.service 命令檢視Jenkins服務的狀態
這時已經可以看到Jenkins服務成功啟動了
獲取並輸入admin賬戶密碼
cat /var/lib/jenkins/secrets/initialAdminPassword跳過外掛安裝 因為Jenkins外掛需要連線預設官網下載,速度非常慢,而且經過會失敗,所以我們暫時先跳過外掛安 裝 新增一個管理員賬戶,並進入Jenkins後臺 儲存並完成 開始使用Jenkins Jenkins密碼遺忘處理 //修改配置檔案安全功能禁用
vim /var/lib/jenkins/config.xml <useSecurity>false</useSecurity>//重啟jenkins服務
systemctl restart jenkins可以直接登入修改賬號密碼 修改jenkins中已有的使用者名稱和ID
vim /var/lib/jenkins/users/users.xml
持續整合環境-Jenkins外掛管理
Jenkins本身不提供很多功能,我們可以通過使用外掛來滿足我們的使用。例如從Gitlab拉取程式碼,使用Maven構建專案等功能需要依靠外掛完成。接下來演示如何下載外掛。 修改Jenkins外掛下載地址(選做) Jenkins國外官方外掛地址下載速度非常慢,所以可以修改為國內外掛地址: Jenkins->Manage Jenkins->Manage Plugins,點選Available 這樣做是為了把Jenkins官方的外掛列表下載到本地,接著修改地址檔案,替換為國內外掛地址 cd /var/lib/jenkins/updates sed -i 's/http:\/\/updates.jenkins- ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json 最後,Manage Plugins點選Advanced,把Update Site改為國內外掛下載地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json Sumbit後,在瀏覽器輸入: http://192.168.153.20:8888/restart ,重啟Jenkins。下載中文漢化外掛 Jenkins->Manage Jenkins->Manage Plugins,點選Available,搜尋"Chinese" 完成後如下圖: 重啟Jenkins後,就看到Jenkins漢化了!(PS:但可能部分選單漢化會失敗) jenkins升級 返回工作臺,發現可以回滾,這就是jenkins的一個人性化的地方,發現新版本不穩定,不行就回滾 注:每次更新一定要重啟。點選等待重啟就行 之後重複以上操作,升級到2.333(2.333版本升級完有很多bug,可以持續關注) 更新完成,更新最新版本重啟之後時間有點長不要擔心。持續整合環境-Jenkins使用者許可權管理
我們可以利用Role-based Authorization Strategy 外掛來管理Jenkins使用者許可權 安裝Role-based Authorization Strategy外掛 開啟許可權全域性安全配置 授權策略切換為"Role-Based Strategy",儲存 建立角色 在系統管理頁面進入 Manage and Assign Roles 點選"Manage Roles" Global roles(全域性角色):管理員等高階使用者可以建立基於全域性的角色 Project roles(專案角色): 針對某個或者某些專案的角色 Slave roles(奴隸角色):節點相關的許可權 我們新增以下三個角色: baseRole:該角色為全域性角色。這個角色需要繫結Overall下面的Read許可權,是為了給所有使用者綁 定最基本的Jenkins訪問許可權。注意:如果不給後續使用者繫結這個角色,會報錯誤:使用者名稱 is missing the Overall/Read permission role1:該角色為專案角色。使用正則表示式繫結"apple.*",意思是隻能操作apple開頭的專案。role2:該角色也為專案角色。繫結"orange.*",意思是隻能操作orange開頭的專案。 儲存。 建立使用者 在系統管理頁面進入 Manage Users 分別建立兩個使用者:jack和kill 給使用者分配角色 系統管理頁面進入Manage and Assign Roles,點選Assign Roles 繫結規則如下: jack使用者分別繫結baseRole和role1角色 kill使用者分別繫結baseRole和role2角色 儲存。 建立專案測試許可權 以ww管理員賬戶建立兩個專案,分別為apple01和orange01 結果為: jack使用者登入,只能看到apple01專案 kill使用者登入,只能看到orange01專案 四、持續整合環境-Jenkins憑證管理 憑據可以用來儲存需要密文保護的資料庫密碼、Gitlab密碼資訊、Docker私有倉庫密碼等,以便 Jenkins可以和這些第三方的應用進行互動。 安裝Credentials Binding外掛 要在Jenkins使用憑證管理功能,需要安裝Credentials Binding外掛 安裝外掛後,左邊多了"憑證"選單,在這裡管理所有憑證 可以新增的憑證有5種: Username with password:使用者名稱和密碼 SSH Username with private key: 使用SSH使用者和金鑰 Secret file:需要保密的文字檔案,使用時Jenkins會將檔案複製到一個臨時目錄中,再將檔案路徑設定到一個變數中,等構建結束後,所複製的Secret file就會被刪除。 Secret text:需要儲存的一個加密的文字串,如釘釘機器人或Github的api token Certificate:通過上傳證書檔案的方式 常用的憑證型別有:Username with password(使用者密碼)和SSH Username with private key(SSH 金鑰) 接下來以使用Git工具到Gitlab拉取專案原始碼為例,演示Jenkins的如何管理Gitlab的憑證。 安裝Git外掛和Git工具 為了讓Jenkins支援從Gitlab拉取原始碼,需要安裝Git外掛以及在CentOS7上安裝Git工具。 Git外掛安裝: CentOS7上安裝Git工具: yum install git -y 安 裝 git --version 安裝後檢視版本 使用者密碼型別 1) 建立憑證 Jenkins->憑證->系統->全域性憑證->新增憑證 選擇"Username with password",輸入Gitlab的使用者名稱pyw和密碼,點選"確定"。 2) 測試憑證是否可用 建立一個FreeStyle專案:新建Item->FreeStyle Project->確定 找到"原始碼管理"->"Git",在Repository URL複製Gitlab中的專案URL 這時會報錯說無法連線倉庫!在Credentials選擇剛剛新增的憑證就不報錯啦 儲存配置後,點選構建”Build Now“ 開始構建專案 檢視/var/lib/jenkins/workspace/目錄,發現已經從Gitlab成功拉取了程式碼到Jenkins中。 SSH金鑰型別 SSH免密登入示意圖 1) 使用root使用者生成公鑰和私鑰 ssh-keygen -t rsa 在/root/.ssh/目錄儲存了公鑰和使用 id_rsa:私鑰檔案id_rsa.pub:公鑰檔案 2) 把生成的公鑰放在Gitlab中 以pyw賬戶登入gitlab->點選頭像->Settings->SSH Keys 複製剛才id_rsa.pub檔案的內容到這裡,點選"Add Key" 3) 在Jenkins中新增憑證,配置私鑰 在Jenkins新增一個新的憑證,型別為"SSH Username with private key",把剛才生成私有檔案內容複製過來 4) 測試憑證是否可用 新建"test02"專案->原始碼管理->Git,這次要使用Gitlab的SSH連線,並且選擇SSH憑證 同樣嘗試構建專案,如果程式碼可以正常拉取,代表憑證配置成功!