Windows 下部署Jenkins相關外掛總結
Jenkins 部署
安裝前提:系統安裝有JDK安裝步驟:
解壓後雙擊安裝包jenkins.msi,按照提示點選[下一步]。。。[下一步]即可
安裝後檢視服務管理器,新出現一個名為[Jenkins]的服務
啟動服務時,可能出現埠(預設8080埠)被佔用的問題,我們可通過修改配置檔案的方式來修改Jenkins的埠號,配置檔案路徑:%jenkins_home%\jenkins.xml
<arguments>-Xrs-Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar"%BASE%\jenkins.war" --httpPort=8080
修改後,需要重啟Jenkins服務
Jenkins 常用模組
系統管理à配置管理
此模組主要設定全域性環境變數或者工具相關的安裝路徑,以便專案中呼叫
系統管理à節點管理
此模組主要是設定執行機器(測試機)的相關資訊
每個機器是一個節點(slave),可以和Jenkins的構建機器發生通訊
我們需要在多少個機器上測試,就需要建立多少個節點。
系統管理à外掛管理
此模組主要是安裝Jenkins相關外掛,可以檢視我們已安裝的外掛、需要更新的外掛以及未安裝的外掛,也可選擇自主研發的外掛
其他相關使用操作,詳見$/Centaur/產品研發中心/01部門/05驗收部/09自動化測試/00_測試工具/自動化部署工具/Jenkins/Jenkins使用文件.docx
Sonarqube部署
這個連結下不僅有Sonar伺服器的安裝包還有相關外掛的下載
已下載的sonar 相關產品的TFS路徑:
$/Centaur/產品研發中心/01部門/05驗收部/09自動化測試/00_測試工具/自動化部署工具/Jenkins/sonarqube-5.2.zip
安裝前提:
1、 存在一個Sonar的資料庫
2、 系統安裝有JDK
安裝步驟:
1、 解壓
2、 設定配置檔案%Sonarqube_home%\conf\sonar.properties
2.1、設定資料庫連線賬號和密碼
#--------------------------------------------------------------------------------------------------
# DATABASE
#
# IMPORTANT: the embedded H2database is used by default. It is recommended for tests but not for
# production use. Supporteddatabases are MySQL, Oracle, PostgreSQL and Microsoft SQLServer.
# User credentials.
# Permissions to createtables, indices and triggers must be granted to JDBC user.
# The schema must be createdfirst.
sonar.jdbc.username=sa
sonar.jdbc.password=sa
2.2、設定資料庫連線字串
根據自己的資料庫型別(MySQL/ Oracle/PostgreSQL/SQLServer/)選擇放開哪一部分,以SQLServer為例
#----- Microsoft SQLServer 2008/2012/2014 and SQL Azure
# A database named sonar must exist and its collation must becase-sensitive (CS) and accent-sensitive (AS)
# Use the following connection string if you want to use integratedsecurity with Microsoft Sql Server
# Do not set sonar.jdbc.username or sonar.jdbc.password property if youare using Integrated Security
# For Integrated Security to work, you have to download the MicrosoftSQL JDBC driver package from
#http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774
# and copy sqljdbc_auth.dll to your path. You have to copy the 32 bit or64 bit version of the dll
# depending upon the architecture of your server machine.
# This version of SonarQube has been tested with Microsoft SQL JDBCversion 4.1
#sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar;integratedSecurity=true
# Use the following connection string if you want to use SQL Auth whileconnecting to MS Sql Server.
# Set the sonar.jdbc.username and sonar.jdbc.password appropriately.
sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar
2.3、根據需求設定Connection pool settings
#----- Connection pool settings
# The maximum number of active connections that can be allocated
# at the same time, or negative for no limit.
# The recommended value is 1.2 * max sizes of HTTP/HTTPS pools. Forexample if both HTTP and
# HTTPS ports are enabled with default sizes (50, see propertiessonar.web.http.maxThreads
# and sonar.web.https.maxThreads) then sonar.jdbc.maxActive should be1.2 * (50 + 50) = 120.
# sonar.jdbc.maxActive=60
# The maximum number of connections that can remain idle in the
# pool, without extra ones being released, or negative for no limit.
# sonar.jdbc.maxIdle=5
# The minimum number of connections that can remain idle in the pool,
# without extra ones being created, or zero to create none.
# sonar.jdbc.minIdle=2
# The maximum number of milliseconds that the pool will wait (when there
# are no available connections) for a connection to be returned before
# throwing an exception, or <= 0 to wait indefinitely.
# sonar.jdbc.maxWait=5000
# sonar.jdbc.minEvictableIdleTimeMillis=600000
# sonar.jdbc.timeBetweenEvictionRunsMillis=30000
2.4、設定WEB SERVER
# WEB SERVER
# Web server is executed in a dedicated Java process. By default heapsize is 768Mb.
# Use the following property to customize JVM options.
# Recommendations:
#
# The HotSpot Server VM isrecommended. The property -server should be added if server mode
#isnotenabledbydefaultonyourenvironment:http://docs.oracle.com/javase/7/docs/technotes/gui#des/vm/server-class.html
#sonar.web.javaOpts=-Xmx768m-Xms256m-XX:MaxPermSize=160m-XX:+HeapDumpOnOutOfMe#moryError-Djava.net.preferIPv4Stack=true
# Same as previous property, but allows to not repeat all other settingslike -Xmx
#sonar.web.javaAdditionalOpts=
# Binding IP address. For servers with more than one IP address, thisproperty specifies which
# address will be used for listening on the specified ports.
# By default, ports will be used on all IP addresses associated with theserver.
sonar.web.host=192.168.1.189
# Web context. When set, it must start with forward slash (for example/sonarqube).
# The default value is root context (empty value).
#sonar.web.context=sonar.web.host/port/context
#sonar.web.context=sonar.web.host/9000/context
# TCP port for incoming HTTP connections. Disabled when value is -1.
sonar.web.port=9000
3、 啟動Sonarqube
執行%Sonarqube_home%目錄下的StartSonar.bat
另外,可以安裝Sonar相關外掛,比如中文外掛,C#外掛等,具體安裝方法是下載外掛的jar檔案,將其放置在%sonar_home%\extensions\plugins下,重啟Sonar即可
目前已下載的相關外掛儲存路徑:$/Centaur/產品研發中心/01部門/05驗收部/09自動化測試/00_測試工具/自動化部署工具/Jenkins/sonarqube外掛
Sonar-Runner部署
安裝包路徑:
$/Centaur/產品研發中心/01部門/05驗收部/09自動化測試/00_測試工具/自動化部署工具/Jenkins/sonar-runner-dist-2.3.zip
安裝前提:已安裝Sonarqube
安裝步驟:
1、 將檔案解壓到本地目錄
2、 設定環境變數
2.1 新增環境變數[SONAR_RUNNER_HOME]=[安裝路徑]
2.2 編輯環境變數[path]
追加[;%SONAR_RUNNER_HOME%\bin]
3、 編輯sonar-runner.properties,根據實際情況選擇放開註釋
#Configurehere general information about the environment, such as SonarQube DB detailsfor example
#Noinformation about specific project should appear here
#-----Default SonarQube server
sonar.host.url=http://192.168.1.189:9000
#-----PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
#-----MySQL
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
#-----Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE
#-----Microsoft SQLServer
sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
#-----Global database settings
sonar.jdbc.username=sa
sonar.jdbc.password=sa
#-----Default source code encoding
sonar.sourceEncoding=UTF-8
#-----Security (when 'sonar.forceAuthentication' is set to 'true')
sonar.login=admin
sonar.password=admin
4、 應用Sonar-runner
前提:
4.1、Snarqube服務已開啟
4.2 在工程目錄下建立一個sonar-project.properties檔案,內容如下
#Required metadata
sonar.projectKey=TestItem #此處設定生成Sonar報告的名字
sonar.projectName=TestItem #此處設定專案名稱
sonar.projectVersion=1.1 #此處設定版本號
#Comma-separated paths to directories with sources (required)
sonar.sources=. #此處設定原始碼相對路徑
sonar.binaries=bin\\Debug #此處設定編譯生成檔案的相對路徑
#Language
sonar.language=cs #此處設定工程的語言型別
#Encoding of the source files
sonar.sourceEncoding=UTF-8 #此處設定編碼格式
4.3 開啟CMD Promat,進入到存放sonar-project.properties的目錄下,輸入命令
Sonar-runner
如果執行報錯,想檢視相關錯誤堆疊資訊,可輸入命令 Sonar-runner –e
Sonar整合到Jenkins
1、 Jenkins系統管理à外掛管理安裝 SonarQube Plugin外掛
2、 Jenkins系統管理à配置管理設定Sonarqube以及Sonar-runner的安裝目錄
圖1
圖2
3、 專案呼叫步驟
Jenkins使用規範
為了使同一個專案可以在多個任務節點上執行,我們需要所有節點上工具的安裝路徑和版本都必須統一,後續我們考慮一鍵安裝這些檔案,這些規範也就不用考慮了
但就目前而言,我們需要將這些路徑統一
JDK:C:\Program Files (x86)\Java\jre1.8.0_66
VS:D:\visual Studio 2012
Sonar:E:\sonarqube-5.2
Sonar-runner:E:\sonar-runner-dist-2.3
Ncover:E:\NCover3.1.2.5168
Jenkins 叢集部署
前提條件:
所有節點伺服器上都安裝job執行所需要的工具,且工具的版本以及安裝目錄必須一致
勾選:引數化構建過程,選擇Node(自主研發的Jenkins外掛)
根據自己的需求,選擇適合自己的構建方式
SSH Server外掛:自主研發的外掛
可以在Jenkins系統管理à配置管理裡面設定多個SSH Server,在專案模板中就會出現在下拉列表中,我們根據自己的需求選擇使用那個SSH Server
SSH Server和 Slave相比較的優勢
即使你選擇了節點,我們的命令還是在SSH Server上執行的