Jenkins 應用案例


Jenkins 應用案例

服務器環境

系統:Centos 7.4 x64
1台:web應用服務器
  1、准備PHP博客項目
  2、安裝mysql數據庫
  3、安裝nginx服務
  4、安裝php-fpm服務
1台:Jenkins服務器+git庫服務器

准備工作

1、配置好服務器之前的SSH秘鑰對認證。
2、提前下載好博客項目
  百度雲:https://pan.baidu.com/s/1Cad-7sKVZ_gW7G7B6G2Gww
  密碼:fpm0

web應用服務器:搭建博客項目環境

一、安裝mariadb數據庫

  • 數據庫版本:mariadb-server.x86_64 1:5.5.64-1.el7

1、通過yum安裝數據庫

yum -y install mariadb-server

2、啟動數據庫

systemctl start mariadb

3、修改數據庫root密碼

mysqladmin -uroot password '123456'

4、登錄數據庫、並創建數據庫

mysql -uroot -p123456
create database wordpress;
quit

二、安裝nginx與php-fpm服務

  • 服務版本:nginx-1.16.1-1.el7.x86_64
  • 服務版本:php-fpm-5.4.16-46.1.el7_7.x86_64

1、通過yum安裝nginx與php-fpm

# 安裝擴展yum源
yum install epel-release -y
# 安裝服務
yum install nginx php-fpm php-mysql

2、添加新的nginx配置文件
vim /etc/nginx/conf.d/web.conf

server {
    listen 8000;
    server_name 192.168.1.113;
    root /usr/share/nginx/html/web;
    index index.htm index.html index.php;
    location ~ \.php$ {
        root           /usr/share/nginx/html/web;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/web$fastcgi_script_name;
        include        fastcgi_params;
    }
}
nginx 配置文件

3、創建網站訪問目錄

mkdir -p /usr/share/nginx/html/web

4、啟動服務

systemctl start nginx
systemctl start php-fpm

5、解壓項目包、並將文件移動到網站目錄、賦予權限

unzip wordpress.zip
cp -rf wordpress/* /usr/share/nginx/html/web/
chown -R apache:apache /usr/share/nginx/html/web/

6、訪問網站安裝
http://192.168.1.113:8000/index.php

7、填寫數據庫信息

8、填寫網站信息

9、安裝成功后登陸測試

10、完成

安裝Jenins+git服務並配置

Jenins 安裝配置:https://www.cnblogs.com/xiangsikai/p/12244819.html

Git 安裝配置:https://www.cnblogs.com/xiangsikai/p/12244782.html

Git服務器配置添加Git倉庫

一、創建存放web網站源碼倉庫

1、git服務器操作:通過git創建web倉庫

# 1、切換git
su - git
# 2、創建web倉庫
mkdir web
cd web
# 3、初始話git倉庫
git --bare init

2、git客戶端操作:下載git倉庫

# 下載倉庫
git clone git@118.31.225.36:/home/git/web

3、將web源代碼導入git倉庫並提交、這里我在web服務器內提交作為git客戶端演示

# 1、進入拉取的web倉庫
cd web/
# 2、將代碼拷貝到當前目錄
cp -rf /usr/share/nginx/html/web/* .
# 3、提交到git倉庫
git add .
git commit -m "all"
git push origin master

二、創建存放Jenkins Pipeline腳本倉庫

1、git服務器操作:通過git創建jenkinsfile倉庫

# 1、切換git
su - git
# 2、創建jenkinsfile倉庫
mkdir jenkinsfile
cd jenkinsfile
# 3、初始話git倉庫
git --bare init

2、客戶端操作:下載git倉庫提交pipeline腳本

# 1、下載倉庫
git clone git@118.31.225.36:/home/git/jenkinsfile
cd jenkinsfile/
# 2、創建文件
vi jenkinsfile
node {
   stage('git checkout') {
        checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigu
   }
   stage('code copy') {
        sh '''rm -rf ${WORKSPACE}/.git
        ssh root@192.168.1.113 "mv /usr/share/nginx/html/web /backup/web-$(date +"%F_%T")"
        scp -r ${WORKSPACE} root@192.168.1.113:/usr/share/nginx/html/web'''
   }
   stage('test') {
       sh "curl http://192.168.1.113:8000/status.html"
   }
}
pipeline 腳本
# 3、提交文件
git add .
git commit -m "jenkinsfile"
git push origin master

配置 Jenkins CI/CD

一、創建與pipeline相關連文件

1、git客戶端操作:創建status.html測試文件到web項目中,並提交到git倉庫

# 1、創建文件
cd web
vim status.html
OK !!!
# 2、提交文件
git add .
git commit -m "status.html"
git push origin master

2、jenkins服務端操作:創建版本備份目錄

mkdir /backup/

二、配置Jenkins流水線任務

1、進入Jenkins網站
http://118.31.225.36:8080/

2、創建新的任務、並命名、使用流水線工程

3、設置丟棄就得構建 閾值為七

4、設置參數化構建過程選擇git Parameter、根據branch類型構建

5、配置Pipeline根據SCM訪問git倉庫下的pipeline腳本文件、保存

6、執行任務 --> Build with Parameters --> 選擇分支 --> Build

問題說明:通過jenkins任務來啟動tomcat時,無法成功啟動。

原因:當jenkins使用Pipeline任務執行完成后他會關閉所有派生進程,導致派生進程在關閉時也關閉掉了tomcat啟動進程,造成tomcat無法啟動。

解決方案:JENKINS_NODE_COOKIE=dontkillme

作用說明:傳入該變量后它會去告訴jenkins完成任務后不要去關閉派生進程。

其他 Pipline案例


JAVA+Maven 案例

node {
   //def mvnHome = '/usr/local/maven'
        stage('git checkout') {
        checkout([$class: 'GitSCM', branches: [[name: '${branch'}]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], user
        }
        stage('maven build') {
        sh '''export JAVA_HOME=/usr/local/java
                /opt/apache-maven-3.6.0/bin/mvn clean package -Dmaven.test.skip=true'''''
   }
        stage('deploy') {
        JENKINS_NODE_COOKIE=dontkillme
        sh '''export JAVA_HOME=/usr/local/java
        TOMCAT_NAME=tomcat
        TOMCAT_HOME=/usr/local/$TOMCAT_NAME
        WWWROOT=$TOMCAT_HOME/webapps/ROOT

        if [ -d $WWWROOT  ]; then
        ¦  mv $WWWROOT /data/backup/${TOMCAT_NAME}-$(date +"%F_%T")
        fi
        unzip ${WORKSPACE}/target/*.war -d $WWWROOT
        PID=$(ps -ef |grep $TOMCAT_NAME |egrep -v "grep|$$" |awk \'{print $2}\')
        [ -n "$PID"  ] && kill -9 $PID
        /bin/bash $TOMCAT_HOME/bin/startup.sh'''''
   }
   stage('test') {
       sh "curl http://xxxxx/status.html"
   }
}
pipeline 腳本

 


免責聲明!

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



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