jenkins

2021-11-21  本文已影响0人  码男将将

前言

jenkins自动化部署神器,本篇文章主要是介绍下怎么安装管理代码和上线代码.深度一些的原理和底层实现之类的是盲区,请各位大哥审阅。如果有好的jenkins书籍或者我这里有错误的理解感谢指出,codeMan拜上.

一、介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,可视化管理服务器持续构建,可以直接去svn或者git上拉取代码并下发到服务器上 。

二、功能

1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。

三、部署操作

1.准备包:
**jdk-8u171-linux-x64.tar.gz **
apache-tomcat-9.0.12.tar.gz
jenkins.war
2.服务器部署过程

下载完的jdk二进制包解压

[root@qi ~]# tar xf jdk-8u171-linux-x64.tar.gz -C /usr/local/

 

给jdk做个软链接

[root@qi ~]# ln -s /usr/local/jdk1.8.0_171 /usr/local/jdk

 

配置Java环境变量

[root@qi ~]# sed -i.ori '$a export JAVA_HOME=/usr/local/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

 

让java环境变量立刻生效

[root@qi ~]# source /etc/profile

 

检查java命令

[root@qi ~]# which java

 


解压安装tomcat

[root@qi ~]# tar xf apache-tomcat-9.0.5.tar.gz -C /usr/local/

 

给tomcat做软链接

[root@qi ~]#ln -s /usr/local/apache-tomcat-9.0.12/ /usr/local/tomcat

 

配置tomcat环境变量

[root@qi ~]# echo 'export TOMCAT_HOME=/usr/local/tomcat' >> /etc/profile

 

立即生效

[root@qi ~]# source /etc/profile

 

对jdk及Tomcat安装目录递归授权root

[root@qi local]# chown -R root.root /usr/local/jdk/ /usr/local/tomcat




将jenkins.war移动到tomcat的webapps下

[root@qi ~]# mv  jenkins.war /usr/local/tomcat/webapps



启动jenkins

[root@qi ~]# cd  /usr/local/tomcat/webapps

[root@qi webapps]# nohup java -jar jenkins.war &> /tmp/jenkins.out 

INFO: Jenkins is fully up and running 启动成功

四、jenkins设置
http://ip:8080
服务器端打开文件 cat /root/.jenkins/secrets/initialAdminPassword

1572663959742.png
1572664046157.png
1572665708138.png
1572665815799.png
1572665844240.png
1572666222236.png
1572666421173.png
1572666496242.png
创建一个新的工作项目
1572666595401.png
1572666662852.png
设置log过期时间
1572668799059.png
按照每1小时拉取代码
1572682387481.png
构建填写shell脚本
1572682457486.png
五、Shell脚本
创建自动化jenkins脚本
cat deploy.sh


#!/bin/sh
#author CodeMan
#该文件需要在使用之前创建/web-code & /web
CODE_DIR="/web-code"
TIME=`date +%F-%H-%M-%S`
uwsgi_dir_pid="/项目目录/uwsgi.ini"
#IP=

GET_CODE(){
        cd $CODE_DIR
        git clone -b developer git@code.aliyun.com:项目目录/项目.git

}
TAR_CODE(){
        cd $CODE_DIR && tar zcf /mnt/web-${TIME}.tar.gz ./* && rm -rf $CODE_DIR/*

}
CP_CODE(){
        mkdir /web/web-$TIME
        cp /mnt/web-${TIME}.tar.gz /web/web-$TIME

}
XF_CODE(){
        cd /web/web-$TIME && tar xf web-${TIME}.tar.gz && rm -rf web-${TIME}.tar.gz

}

main(){
        GET_CODE
        TAR_CODE
        CP_CODE
        XF_CODE
}
main

cp -rf /web/web-$TIME/dashop/* 项目目录
sed -i 's#baseUrl="http://127.0.0.1:8000"#//baseUrl="http://127.0.0.1:8000"#' /项目目录/static/js/init.js
sed -i 's#//baseUrl="http://114.116.244.115:7000#baseUrl="http://114.116.244.115:7001#' /项目目录/static/js/init.js
rm -fr /项目目录/django_static
python3 /项目目录/manage.py collectstatic

六、手动构建


1573201760113.png
1573201782516.png
上一篇下一篇

猜你喜欢

热点阅读