jenkins是什么?
Jenkins是一個開源的、可擴展的持續集成、交付、部署(軟件/代碼的編譯、打包、部署)的基於web界面的平台。允許持續集成和持續交付項目,無論用的是什么平台,可以處理任何類型的構建或持續集成。
為什么要用jenkins?
把jenkins權限分給開發和測試,將打包發布流程變得簡單化,及時發現bug。
減少人工干預,降低風險。
jenkins的優勢是什么
Jenkins的優勢包括:
在開發環境的早期階段, 錯誤跟蹤很容易。
提供大量的插件支持。
對代碼的迭代改進。
構建失敗會在集成階段進行緩存。
對於每個代碼提交更改, 都會生成一個自動生成報告通知。
通過簡單的步驟, 即可自動完成maven發布項目。
jenkins你都用了哪些插件
安裝GitLab和GitLab Hook 配置Gitlab的相關認證,同時也支持GitLab的Webhook觸發
Maven 構建mvn項目相關
Workspace Cleanup Plugin 清理工作目錄
Publish Over SSH 通過SSH拷貝文件到目標機器,同時可以在目標機器上執行腳本
Role-based Authorization Strategy 基於角色的的用戶權限控制
jenkins怎么備份恢復
主要拷貝家目錄下面.jenkins目錄,jenkins生成的配置,插件和job都在里面
如何配置 Jenkins 的 job
關於這個答案的解決方法是首先提一下如何創建 job:轉到 Jenkins 首頁,選擇“New Job”,然后選擇“Build a free-style software project”。然后你可以設置這個自由式 job 的元素:
• 可選的 SCM,例如源代碼所在的 CVS 或 Subversion。
• 用於控制 Jenkins 何時執行構建的觸發器。
• 某種構建腳本,用於執行實際工作的構建(ant,maven,shell 腳本,批處理文件等)。
• 從構建中收集信息的可選步驟,例如歸檔制品、記錄 javadoc 和測試結果。
• 配置構建結果通知其他人/系統的步驟,例如發送電子郵件、即時消息、更新問題跟蹤器等。
什么是持續集成
開發人員每天多次將代碼集成到共享代碼庫中。然后通過自動構建來驗證每次代碼的修改,以便團隊盡早發現問題。
我建議你解釋一下在以前的工作中是如何實施持續集成的,可以參考以下示例:
在上圖中:
1. 開發人員將代碼 clone 至私有工作區。
2. 完成編碼后,他們將更改提交至共享代碼庫中(版本控制倉庫)。
3. CI 服務器監視代碼倉庫並在發生更改時檢出更改。
4. 緊接着 CI 服務器提取這些變更進行構建、運行單元以及集成測試。
5. CI 服務器會立即告知團隊構建成功與否。
6. 如果構建失敗,CI 服務器會向團隊發送告警。
7. 研發團隊將盡快解決問題。
8. 這個過程會不斷重復。
修改jenkins主目錄
vim catalina.sh
# OS specific support. $var _must_ be set to either true or false.
export JENKINS_HOME="/data/jenkins_home"
vim /etc/profile
export JENKINS_HOME="/data/jenkins_home"
source /etc/profile
jenkins手動重啟的方式
1、(Jenkins_url)/ restart:強制重啟, 而無需等待構建完成。
2、(Jenkin_url)/ safeRestart:允許所有正在運行的構建完成。
什么是jenkins pipline?
Pipeline,簡而言之,就是一台運行於Jenkins上的工作流框架,將原本獨立運行於單個或者多個節點的任務連接起來,實現單個任務難以完成的復雜流程編排與可視化。
Jenkins Pipeline是一組插件,讓Jenkins可以實現持續交付管道的落地和實施。
什么是jenkinsfile?為什么使用jenkinsfile
Jenkinsfile是一個文本文件,其中包含Jenkins Pipeline的定義,並已簽入源代碼管理
雖然用於定義管道的腳本語法和jenkinsfile類似,但通常認為在項目中定義管道Jenkinsfile並檢查源代碼管理是最佳實踐。
為所有分支和請求自動創建一個管道構建過程。
管道上的代碼審查/迭代。
審核追蹤管道
如何保證 Jenkins 的安全?
確保 global security 配置項已經打開。
確保用適當的插件將 Jenkins 與企業員工目錄進行集成。
確保啟用項目矩陣的權限訪問設置。
通過自定義版本控制的腳本來自動化 Jenkins 中設置權限/特權的過程。
限制對 Jenkins 數據/文件夾的物理訪問。
定期對其進行安全審核。
確保 global security 配置項已經打開。
確保啟用項目矩陣的權限訪問設置。