Jenkins去GitLab拉取Java代碼自動打包


jenkins的部署

一、部署git

1)先檢查系統是否已經自帶了git,如果有,就卸載

$ rpm -qa | grep git &&  rpm -e git --nodeps

2)開始安裝git所需要的依賴包

$ yum -y install curl-devel gettext-devel expat-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

3)下載git源碼包並安裝

$ wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
$ tar xvf  git-2.9.5.tar.gz -C /usr/local/src
$ cd /usr/local/src/git-2.9.5/
$ make prefix=/usr/local/git all
$ make prefix=/usr/local/git install

4)修改環境變量

$ vim /etc/profile
export PATH=$PATH:/usr/local/git/bin
$ source /etc/profile

5)測試

$ git --version
git version 1.8.3.1

二、部署jdk環境

2.1. 檢測是否有自帶的jdk環境,如果有就卸載

$ rpm -qa | grep jdk && yum -y remove java*

2.2. 下載JDK

$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
#wget --no-check-certificate --no-cookies --header "Cookie直接下載JDK,避免用戶驗證"
​
$ tar xvf jdk-8u181-linux-x64.tar.gz -C /usr/local/
$ mv /usr/local/jdk1.8.0_181 /usr/local/java     

2.3. 修改環境變量

$ vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/git/bin
$ source /etc/profile

2.4. 測試

$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

三、部署Maven

3.1. 下載maven包

$ wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

3.2. 解壓Maven

$ tar xvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
$ mv /usr/local/apache-maven-3.5.4 /usr/local/maven

3.3. 修改環境變量

$ vim /etc/profile
export JAVA_HOME=/usr/local/java
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:/usr/local/git/bin
$ source /etc/profile

3.4.測試

$ mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/maven
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_181/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-514.26.2.el7.x86_64", arch: "amd64", family: "unix"

四、部署Tomcat

4.1. 下載Tomcat

$ wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.16/bin/apache-tomcat-9.0.16.tar.gz

4.2. 解壓Tomcat

$ tar xvf apache-tomcat-9.0.16.tar.gz -C /usr/local
$ mv /usr/local/apache-tomcat-9.0.16 /usr/local/tomcat

4.3. 修改環境變量

$ vim /etc/profile
export JAVA_HOME=/usr/local/java
export MAVEN_HOME=/usr/local/maven
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:/usr/local/git/bin
$ source /etc/profile

4.4. 增加熵池大小,快速啟用tomcat

$ yum -y install rng-tools
$ cp /usr/lib/systemd/system/rngd.service /etc/systemd/system
$ vim /etc/systemd/system/rngd.service
ExecStart=/sbin/rngd -f -r /dev/urandom
$ systemctl daemon-reload 
$ systemctl restart rngd

4.5. 編寫tomcat的啟動腳本

$ vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/java"   //tomcat啟用時需要識別JAVA_HOME
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
[root@jenkins ~]# chmod 600  /usr/lib/systemd/system/tomcat.service
[root@jenkins ~]# systemctl daemon-reload 

5.6. 測試

$ systemctl start tomcat
$ ss -antp | grep java
LISTEN     0      100         :::8009                    :::*                   users:(("java",pid=5717,fd=54))
LISTEN     0      100         :::8080                    :::*                   users:(("java",pid=5717,fd=49))
LISTEN     0      1         ::ffff:127.0.0.1:8005    :::*                   users:(("java",pid=5717,fd=107))

五、部署jenkins

5.1. 下載jenkins.war包

$ wget http://mirrors.jenkins.io/war/latest/jenkins.war

5.2. 安裝jenkins(放到tomcat的webapps目錄下,啟用tomcat即可)

$ cp jenkins.war /usr/local/tomcat/webapps

5.3. 測試

$ systemctl restart tomcat

5.4. 修改首頁

<Context path="" docBase="/usr/local/tomcat/webapps/jenkins/" debug="0"/>

 

image

六、配置jenkins

6.1. jenkins的安裝

$ cat /root/.jenkins/secrets/initialAdminPassword
5e94c58bcd6a4fc5b7f49675c39a44bf
6.1.1. 報錯

解決辦法:
$ find / -name "hudson.model.UpdateCenter.xml"
/root/.jenkins/hudson.model.UpdateCenter.xml

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>

https修改為http

6.2. 點擊安裝推薦的插件

6.3. 等待插件下載完成

6.4. 設置管理員賬號密碼

image

6.5. 配置訪問Jenkins的URL

image

6.6. Start Using Jenkins

輸入賬號密碼登錄

6.7. jenkins插件的安裝

image

6.7.1 安裝SSH Publish Over SSH 用於ssh連接的

 

 

6.7.2 安裝GitLab 為git客戶端從git主庫取代碼

image

 

6.7.3. 安裝Maven Integration plugin 編譯打包

image

 

6.8. jenkins系統設置

image

 

6.8.1. 配置jdk根目錄

6.8.2. 配置git命令的絕對路徑

 

image

 

6.8.3. 配置Maven根目錄

image

 

Apply and Save

6.8.4. 配置ssh

 

image

$ ssh-copy-id -i 192.168.1.10       //后端gitlab的ip地址
$ cat .ssh/id_rsa

image

 

Apply and Save

Hostname為后端tomcat服務器的ip地址
Remote Directory ssh過去后在機器的什么目錄下

點擊Test Configuration 顯示Success則表示成功----> Apply and Save

6.9. 在GitLab服務器上獲取Token

6.9.1. 創建用戶獲取Token

6.10. jenkins服務器上配置Gitlab

七、創建一個Jenkins Job

7.1. 創建job

7.2. 生成訪問GitLab的ssh秘鑰

從Gitlab上以SSH的方式拉取或提交代碼需要用到這個SSH秘鑰,哪台機器需要從GitLab上拉取代碼,就在哪台機器上生成SSH key

$ ssh-keygen -t rsa -C "<添加一些注釋>" -b 4096
$ cat .ssh/id_rsa.pub

7.3. 配置Job

 

image image image image

 

7.4. 配置Job的構建觸發器

選擇“構建觸發器”,勾選“Pull SCM”,這個選項會每隔一段時間檢查一下GitLab倉庫中代碼是否有更新,有的話就執行構建操作。日程表如何設置,在這個輸入框下面有說明。

image

 

7.5. 配置打包

 

7.6.打包完成之后的動作

$ mkdir /jenkins/{jar,sh} -p
$ vim /jenkins/sh/web.sh
	cp /jenkins/jar/*.jar /jenkins
	echo successfully > /root/jenkins.log
$ chmod +x /jenkins/sh/web.sh
7.6.1. 報錯

腳本沒有執行權限,需要給腳本授權

$ chmod +x 腳本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM