主頁 > 軟體工程 > 從零開始針對 .NET 應用的 DevOps 運營實踐 - Jenkins & SonarQube 安裝配置

從零開始針對 .NET 應用的 DevOps 運營實踐 - Jenkins & SonarQube 安裝配置

2020-10-19 14:25:41 軟體工程

一、Overview

繼續 DevOps 實施的相關內容,在上一篇的博客中,完成了對于工具鏈中使用到的軟體所需的運行環境的配置,在這一篇的博客中,將聚焦于我們使用到的兩個主要的軟體:Jenkins 與 SonarQube 在 Windows 服務器上的部署安裝,為后續 DevOps 的實施,構建軟體基礎

二、Contents

  1. 從零開始針對 .NET 應用的 DevOps 運營實踐 - 運行環境搭建
  2. 從零開始針對 .NET 應用的 DevOps 運營實踐 - Jenkins & SonarQube 安裝配置

三、Step by Step

3.1、前言

在 Jenkins 與 SonarQube 的版本選擇上,這里我選擇的都是最新的 LTS 版本,也就是長期支持版本,如果你沒有什么特定的需求的話,建議不要選擇過于古老的軟體版本

這里請重點關注 SonarQube 的版本問題,對于自動化代碼檢查的資料,SonarQube 支持持久化到常見的資料庫中(默認使用的是 H2 資料庫),然而 8.x 之后的版本只支持持久化到 Oracle、SQL Server 以及 PostgreSQL,嗯,同 Gitlab 一樣,沒有 MySQL

因此,如果你需要持久化資料到 MySQL 資料庫,最后一個能選擇的版本則是 7.7 版本(電梯直達),并且這個版本只支持 MySQL 5.6、5.7,考慮到后續已經不再支持 MySQL 資料庫的緣故,請謹慎考慮是否一定要采用該版本

3.2、Jenkins

3.2.1、程式安裝

打開 Jenkins 官網,找到下載頁面(https://www.jenkins.io/download/),選擇最新的 LTS 版本下載,針對 Windows 平臺,可以通過 war 包運行,在 docker 中運行,以及通過 msi 安裝包安裝之后,作為一個 Windows 服務運行

作為一個需要持續運行的服務,這里我選擇通過 msi 方式的來完成程式的部署

下載地址

雙擊 msi 安裝檔案,配置軟體的安裝路徑,對于這種基礎的軟體服務,建議還是放在默認的位置

選擇安裝路徑

因為 Jenkins 在安裝之后,是會作為一個獨立的 Windows 服務的,如果你需要使用域賬戶或本地賬戶作為服務的運行方來運行該服務的話,這里需要進行配置賬戶、密碼

使用賬戶憑證

Jenkins 默認使用 8080 埠,可以點擊下方的 Test Port 按鈕來測驗當前設定的埠是否已經被占用

設定運行埠

在上一篇中有提到 Jenkins 是基于 Java 進行開發的,在軟體的安裝程序中,安裝程式默認會帶出來我們配置的 Java SDK 資訊,當然,你也可以在這里針對 Jenkins 設定不同的 Java SDK

設定 Java 版本

完成所需運行環境的配置之后,將 Jenkins 服務所使用的 8080 埠添加到防火墻的白名單中,從而允許別的機器可以訪問到該服務

防火墻錯誤

當配置完成之后,點擊 Install 等待安裝完成即可,當安裝向導提示安裝完成時就可以通過瀏覽器訪問 Jenkins

安裝完成

3.2.2、基礎配置

打開瀏覽器,按照頁面上的提示,我們需要找到位于指定路徑上的密碼,復制到頁面上的輸入框,來完成 Jenkins 的解鎖,從而繼續后續的操作

解鎖 Jenkins

解鎖之后,Jenkins 會提示你安裝一些必要的插件,這里如果你因為網路問題沒有安裝成功或者壓根沒有彈出這個頁面,也沒有關系,后續可以在程式中手動的選擇需要安裝的插件

插件安裝

等待插件的安裝完成 or 直接跳過插件的安裝,創建一個管理員賬戶,用來管理我們的 Jenkins 系統,點擊下一步,會需要我們配置一個 Jenkins URL,這個地址采用默認的地址即可,這里一定要注意,如果你調整了該 URL 的配置,后續一定要通過 Web 服務器進行反向代理,否則后續會出現各種問題

Jenkins URL

點擊保存并完成之后,基本的 Jenkins 運行環境就安裝配置完成了,當然,為了實作我們的需求,還需要后續在此基礎上,安裝各種所需的插件,從而實作構建流水線來完成持續集成的功能

Jenkins

3.3、SonarQube

3.3.1、程式安裝

同 Jenkins 一樣,SonarQube 同樣選擇最新的 LTS 版本進行下載了(電梯直達)

SonarQube 下載

SonarQube 下載完成的是一個壓縮包,解壓壓縮包,找到 bin 目錄,里面列出了在不同作業系統運行程式的方式,因為我們是在 Windows 平臺,所以這里選擇 windows-x86-64 檔案夾,同樣的,作為一個需要常駐的服務,這里最好也將應用作為 Windows 服務進行運行

右擊 InstallNTService.bat 選擇以管理員身份運行,再使用管理員身份運行 StartNTService.bat 即可

啟動 SonarQube 服務

打開瀏覽器,SonarQube 默認使用 9000 埠,等待一段時間,如果可以看到如下的頁面,則代表應用已經安裝成功,點擊右上角的 Log in,輸入默認的賬戶、密碼即可登錄到系統中(默認的賬戶、密碼都是 admin)

PS:如果 9000 埠已經被占用了,可以找到 conf 檔案下的 sonar.properties 檔案修改 sonar.web.port 配置然后重啟服務即可

SonarQube 安裝

3.3.2、資料持久化

對于自動化的代碼檢查資料,是具有一定的價值的,因為目前資料還是存盤在 SonarQube 內置的 H2 資料庫中,為了便于后續的使用,這里選擇持久化到 SQL Server 資料庫中

PS:請關注你使用的 SonarQube 所支持的資料庫版本資訊

新建一個資料庫,這里必須調整資料庫的排序規則為 CS(case-sensitive,區分大小寫)、AS(accent-sensitive,區分重低音),例如這里我選擇的排序規則為 Chinese_PRC_CS_AS

創建資料庫

資料庫創建之后,需要執行如下的 SQL 陳述句,確保當前庫的 is_read_committed_snapshot_on 屬性設定為 true,這里的 sonar 就是我新建的資料庫名稱

-- 查看 is_read_committed_snapshot_on 是否啟用
SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name='sonar';

-- 打開 is_read_committed_snapshot_on
ALTER DATABASE sonar SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

資料庫設定完成之后,我們需要下載 Microsoft SQL JDBC Driver 7.2.2 package 這個 SQL Server 的 JDBC 驅動到本地,這里選擇下載壓縮包

下載 JDBC 驅動

找到下載之后的壓縮包解壓,選擇 auth 路徑下的 x64 檔案夾,獲取到這個 64 位的 sqljdbc_auth.dll 檔案,拷貝到 SonarQube 的路徑下,這里我在 \extensions\jdbc-driver 路徑下新建了一個 mssql 檔案夾用來存放這個 dll 檔案

拷貝授權檔案

驅動下載完成后,找到 conf 檔案下的 sonar.properties 檔案,修改資料庫連接資訊,重新啟動 SonarQube 服務,等待資料庫表的創建完成,嗯,這個程序比較慢,耐心等待

修改 SQL Server 配置

等待應用的重新啟動完成,與 Jenkins 相同,我們可以安裝各種插件來豐富 SonarQube,這里我們可以在登錄系統后,點擊 Administration 選單,在 Marketplace 中,下載所需的插件,例如這里可以下載中文的語言包,重啟之后,系統就變成了中文

下載中文插件

同樣的,針對服務器無法連接外網的同學,我們可以從網路上找到需要的插件進行下載,然后放到程式運行路徑下的 \extensions\plugins 檔案夾中,重啟服務即可

3.4、總結

自此,Jenkins 和 SonarQube 就已經安裝配置完成了,當然,為了實作我們的需求,在實際使用時 Jenkins 還需要安裝一些必須的插件,在下一章中,就可以通過與 Gitlab 進行串接,完成 .NET 應用的持續集成作業

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/180096.html

標籤:其他

上一篇:從零開始針對 .NET 應用的 DevOps 運營實踐 - Jenkins & SonarQube 安裝配置

下一篇:求EXCEL檔案改名VBA陳述句

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more