1. 程式人生 > >Windows 下部署Jenkins相關外掛總結

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

</arguments>

修改後,需要重啟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&amp;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上執行的