jenkins安裝,構建springboot程序


jenkins安裝已經構建springboot程序

一.准備工作

1.啟動虛擬機linux

使用虛擬機啟動兩個linux系統重點(關閉防火牆,使端口可以訪問,線上可以開啟指定端口,本地學習不用那么麻煩)

規划:

jenkins:192.168.244.132

java:192.168.244.133

2.都安裝好java環境(略)
檢查java是否安裝完成
java -version
3.下載好jenkins文件

下載地址http://mirrors.jenkins-ci.org/war/2.281/jenkins.war,可以使用迅雷下載速度快一些

4.配置組和用戶,授權目錄上傳文件
jenkins服務器:
使用root用戶創建一個組叫cicd,創建一個用戶叫就叫jenkins並且指定到cicd組
[root@localhost ~]# groupadd cicd
[root@localhost ~]# useradd jenkins -g cicd

創建一個jenkins的目錄,就放到/data/software/jenkins
[root@localhost ~]# mkdir -p /data/software/jenkins
將這個目錄指定給jenkins和cicd組
[root@localhost ~]# chown -R jenkins:cicd /data/software/jenkins

給jenkins指定一個密碼:1q23lsc45+ [古詩:一去二三里,山村四五家]

[root@localhost ~]# passwd jenkins
更改用戶 jenkins 的密碼 。
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。


切換成jenkins用戶
[root@localhost ~]# su jenkins

進入工作目錄
[jenkins@localhost root]$ cd /data/software/jenkins/

使用rz命令上傳下載的jenkins.war


上傳完畢使用ll命令查看文件
[jenkins@localhost jenkins]$ ll
總用量 71672
-rw-r--r--. 1 jenkins cicd 73388412 2月  28 16:56 jenkins.war

 

5.啟動jenkins服務
啟動命令
[jenkins@localhost jenkins]$ nohup java -jar /data/software/jenkins/jenkins.war  --httpPort=8777 --httpsPort=8778 > /data/software/jenkins/jenkins.log 2>&1 &

查看日志是否啟動成功
[jenkins@localhost jenkins]$ tail -f -n  200 jenkins.log

有一串數字,記錄下來,這個是密碼
e672197178284eceab4ed5a425b51f67
你的和我的不一樣,到時候使用自己的

 

6.修改鏡像
由於外網下載慢,所以修改國內鏡像下載
[jenkins@localhost jenkins]$ cd /home/jenkins/.jenkins/updates

把default.json中updates.jenkins-ci.org/download替換為mirrors.tuna.tsinghua.edu.cn/jenkins
www.google.com替換為www.baidu.com

[jenkins@localhost updates]$ sed -i 's/http:\/\/updates.jenkinsci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

回到上一級目錄
[jenkins@localhost .jenkins]$ cd /home/jenkins/.jenkins
修改hudson.model.UpdateCenter.xml文件的站點為https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
[jenkins@localhost .jenkins]$ vim hudson.model.UpdateCenter.xml
7.重啟項目
[jenkins@localhost .jenkins]$ cd /data/software/jenkins/
使用jps命令查看進程,kill掉再啟動

[jenkins@localhost jenkins]$ kill -9 17148

再次啟動
[jenkins@localhost jenkins]$ nohup java -jar /data/software/jenkins/jenkins.war  --httpPort=8777 --httpsPort=8778 > /data/software/jenkins/jenkins.log 2>&1 &
8.基礎jenkins

瀏覽器訪問:http://192.168.244.132:8777

填入上面記錄的那個密碼

選擇推薦安裝

 

等待安裝即可

創建用戶

保存配置

登錄

 

9.配置jenkins
1.配置java

保存時候GIT那塊可能出錯,先刪除那個

2集成git

 

為了能拉取代碼,現在使用root用戶在服務器安裝git
[root@localhost jdk1.8.0_201]# yum install git -y

使用
[jenkins@localhost jenkins]$ git version查看版本

 

3.創建憑證

為了能從git服務器拉取代碼,肯定需要憑證,這里用用戶名密碼為例

 

 

 

 

4.測試

 

 

創建一個任務

找到git代碼地址

配置地址和憑證

立即構建

查看日志輸出

[jenkins@localhost jenkins]$ cd /home/jenkins/.jenkins/workspace/get_code_test

可以看到代碼已經拉取過來了,勝利在望

10.安裝maven

 

 

等待系統重啟

服務器安裝maven軟件

使用root安裝maven
su root
切換目錄
[root@localhost local]# cd /usr/local/
創建目錄
[root@localhost local]# mkdir maven

在amven目錄下下載maven軟件
[root@localhost maven]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

解壓文件
[root@localhost maven]# tar -zxvf apache-maven-3.6.3-bin.tar.gz
進入目錄
[root@localhost maven]# cd apache-maven-3.6.3

使用pwd獲取路徑
[root@localhost apache-maven-3.6.3]# pwd
記錄路徑
/usr/local/maven/apache-maven-3.6.3

修改/etc/profile

[root@localhost apache-maven-3.6.3]# vim /etc/profile

刷新配置
[root@localhost apache-maven-3.6.3]# source /etc/profile

查看maven
[root@localhost apache-maven-3.6.3]# mvn -version

 

配置maven

是要root用戶創建maven倉庫
[root@localhost apache-maven-3.6.3]# cd /data/software

[root@localhost software]# mkdir repository

[root@localhost software]# cd  repository/

[root@localhost repository]# pwd
/data/software/repository


配置maven的setting.xml文件
[root@localhost repository]# cd  /usr/local/maven/apache-maven-3.6.3/conf/


[root@localhost conf]# vim settings.xml

  <!--本地倉庫-->          
  <localRepository>/data/software/repository</localRepository>
  
  <mirrors>
    <!--阿里雲鏡像-->
    <mirror>
      <id>aliyun-maven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven mirror</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>

 

11.構建maven項目

 

 

 

 

編輯配置

 

 

clean package -U -Dmaven.test.skip=true

 

保存並構建

構建報錯,分析原因是repository目錄是root創建的 ,jenkins用戶沒有權限訪問,給他賦權

chown -R jenkins /data/software/repository

再次構建可以看到在下載依賴了

第一次構建要下載的依賴有點多,所以時間較長

看到這個說明構建成功

我們去linux 看看是否生成jar了

[root@localhost target]# cd /home/jenkins/.jenkins/workspace/my_first_maven_project/target

可以看到jar生成了

12.配置免密碼拷貝
使用jenkins用戶生成秘鑰

[jenkins@localhost ~]$ ssh-keygen -t rsa

三次回車

[jenkins@localhost ~]$ cd  .ssh/
[jenkins@localhost .ssh]$ ll
總用量 8
-rw-------. 1 jenkins cicd 1679 2月  28 20:08 id_rsa
-rw-r--r--. 1 jenkins cicd  411 2月  28 20:08 id_rsa.pub

接下來需要將公鑰導入到認證文件中
[jenkins@localhost .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改權限
[jenkins@localhost .ssh]$ chmod 700 ~/.ssh
[jenkins@localhost .ssh]$ chmod 600 ~/.ssh/authorized_keys



切換為另一台服務器,配置用戶和組以及秘鑰

[root@localhost ~]# groupadd java
[root@localhost ~]# useradd java -g java
[root@localhost ~]# mkdir -p /data/software/java
[root@localhost ~]# chown -R java:java /data/software/java
[root@localhost ~]# passwd java
更改用戶 java 的密碼 。
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。

切換用戶
[java@localhost root]$ ssh-keygen -t rsa
[java@localhost ~]$ chmod 700 ~/.ssh

 

使用jenkins服務器拷貝授權文件

[jenkins@localhost .ssh]$ scp -p ~/.ssh/id_rsa.pub java@192.168.244.133:/home/java/.ssh/authorized_keys
The authenticity of host '192.168.244.133 (192.168.244.133)' can't be established.
ECDSA key fingerprint is SHA256:ZE3LIJ/6YStL3NcK4pAkS1HfuOlhI5WD0Zh1PzSXo1Q.
ECDSA key fingerprint is MD5:a9:79:0d:3a:e5:a7:9c:16:07:4f:b9:8a:d7:06:05:f0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.244.133' (ECDSA) to the list of known hosts.
java@192.168.244.133's password: 
id_rsa.pub   

 

java 服務器修改文件權限

[java@localhost .ssh]$ chmod 600 ~/.ssh/authorized_keys

 

jenkins服務器測試拷貝文件

在用戶目錄創建文件
[jenkins@localhost ~]$ vim  aaa.txt

[jenkins@localhost ~]$ scp aaa.txt  java@192.168.244.133:/home/java/aaa.txt
aaa.txt

在java服務器查看文件
[java@localhost .ssh]$ cd 
[java@localhost ~]$ ll
總用量 4
-rw-r--r--. 1 java java 5 2月  28 20:35 aaa.txt
[java@localhost ~]$ cat aaa.txt 
aaaa

拷貝完成,我們就可以用來拷貝jar了
13.拷貝jar

我們在java服務端定一個目錄放jar

[java@localhost app]$ mkdir -p /data/software/java/app/

配置打包后的操作

#!/bin/bash

echo "my_first_maven_project"
DIR="/data/software/java/app"
projectName="cicd-demo"

echo "待部署的應用服務器,可多台"
server_ips="192.168.244.133"
for server_ip in ${server_ips[@]}
do

echo "ssh連接進行備份操作"
ssh -Tq -oStrictHostKeyChecking=no java@${server_ip} <<EOF
mkdir -p $DIR/backup/${projectName}
if [ -f "$DIR/${projectName}/${projectName}.jar" ];then
  mv $DIR/${projectName}/${projectName}.jar $DIR/backup/${projectName}/${projectName}-`date "+%Y%m%d_%H%M%S"`.jar 
fi
EOF

echo "拷貝jar包到目標服務器的tmp目錄"
scp -q -oStrictHostKeyChecking=no ${WORKSPACE}/target/*.jar java@${server_ip}:/tmp/${projectName}.jar

echo "ssh遠程連接進行發布操作"
ssh -q -oStrictHostKeyChecking=no java@${server_ip} <<EOF
mkdir -p $DIR/${projectName}
mv /tmp/${projectName}.jar $DIR/${projectName}/${projectName}.jar
cd  ${DIR}
sh  stop.sh   ${projectName}
sh  start.sh  $DIR ${projectName}
EOF

done

echo "success"

創建兩個sh

start.sh

#!/bin/bash
set -e #任何命令出錯就退出
set -o pipefail


APP_DIR=$1
PROJECT_NAME=$2


nohup java  -jar ${APP_DIR}/${PROJECT_NAME}/${PROJECT_NAME}.jar > ${PROJECT_NAME}.log &
start_ok=false
if [[ $? = 0 ]];then
        sleep 3
        tail -n 10 ${PROJECT_NAME}.log
        sleep 5
        tail -n 50 ${PROJECT_NAME}.log
fi
aaa=`grep "Started" ${PROJECT_NAME}.log  | awk '{print $1}'`
if [[ -n "${aaa}" ]];then
    echo "app started ok"
    exit 0
else
    echo "app started error"
    exit 1
fi

 

stop.sh

#!/bin/bash

PROJECT_NAME=$1
ps aux | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print "kill -9 "$2}' | sh
14.構建項目

 

構建成功:

查看程序

瀏覽器訪問:http://192.168.244.133:8080/date

 

 

程序已經啟動

 

 

 

我們修改代碼

再次構建程序

 

再次刷新請求

 

已經刷新成功

 

完結撒花

 

參考:https://www.it235.com/%E5%AE%9E%E7%94%A8%E5%B7%A5%E5%85%B7/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/jenkins.html


免責聲明!

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



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