Jenkins部署

看心情

1. 初衷

  我在写教程之前也犹犹豫豫,写的不好又怕误导别人。坦白而言,自己摸索是一件非常痛苦的事情,我只想在自己的理解基础上整理一下,归纳成自己的想要的, 勇敢踏出一步,出来混,早晚是要还的 ,早晚都的还,还是尽早吧,如张爱玲说的,出名要趁早

2. 下载

2.1 所需包下载

 Jenkins部署,其实非常的简单,你要知道的事情是Jenkins依赖于Java,所以我们要先安装一个tomcat,然后下载jenkins的包到tomcat的webapp下,改为ROOT.war,启动Tomcat即可。

Jenkins官方网站

http://jenkins-ci.org/。

我们下载包地址

http://mirrors.jenkins.io/war-stable/

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

jdk 下载地址

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

现在下载jdk,需要登录,揍他个GR的美国佬。

tomcat下载地址

https://tomcat.apache.org/download-80.cgi

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz

所有包

root@manage01:/usr/local/src/jenkins# ll
total 275436
drwxr-xr-x 2 root root      4096 Mai 30 15:23 ./
drwxrwxrwx 9 root root      4096 Mai 30 15:09 ../
-rw-r--r-- 1 root root   9699102 Mai  4 17:40 apache-tomcat-8.5.41.tar.gz
-rwxr-xr-x 1 root root       562 Mai 30 15:15 install_jdk.sh*
-rw-r--r-- 1 root root 194990602 Mai 30 14:55 jdk-8u211-linux-x64.tar.gz
-rw-r--r-- 1 root root  77335220 Mai 11 01:03 jenkins.war

2.2 流程

开发 ---提交代码---> 版本库(svn|gitlab) --->  Jenkins ----> 服务器
    1. 需要用到的软件工具。 代码库(SVN/Git),Jenkins,如果是Java项目,则还可能用到nexus(maven的私服仓库),maven(打包工具)。
    1. 整套的工作流程是:开发人员进行项目开发—-提交代码到代码库—-在Jenkins上进行部署构建—-原本繁琐的一系列操作,就这么被Jenkins给一条龙服务了。
    1. 通过Jenkins 自己发布
    1. 一般公司至少都是有测试与生产环境两种(或者还会有预发的环境),两种环境最好分开部署两个Jenkins, 一方面利于权限管理,另一方面避免掉项目过多的误操作。我曾听一个同事说他们之前公司没有测试环境,直接拿线上当测试,每次发布,所有人都像如临大敌一样瞪大双眼监控着有没有问题,,,想想就可怕哈。

2.3 流程

  • 部署jdk
  • 部署tomcat
  • 部署Jenkins
  • 配置Jenkins

3 部署jdk

install_jdk.sh
#!/bin/bash
JDKPath=/usr/lib/jvm
SourcePath=~/.bashrc
[ ! -f $JDKPath ] && mkdir -p $JDKPath
cd $JDKPath
rm -rf *
cd -
[ ! -f jdk-8u211-linux-x64.tar.gz ] && echo "The jdk-8u211-linux-x64.tar.gz file is not exist."
tar -xf jdk-8u211-linux-x64.tar.gz -C  $JDKPath >/dev/null

cat >>$SourcePath<<EOF

#add by caimengzhi at `date +%F` start
export JAVA_HOME=$JDKPath/jdk-8u211  
export JRE_HOME=\${JAVA_HOME}/jre  
export CLASSPATH=.:\${JAVA_HOME}/lib:\${JRE_HOME}/lib  
export PATH=\${JAVA_HOME}/bin:\$PATH
#add by caimengzhi at `date +%F` end
EOF
.  $SourcePath
root@manage01:/usr/local/src/jenkins# ls
apache-tomcat-8.5.41.tar.gz install_jdk.sh  jdk-8u211-linux-x64.tar.gz  jenkins.war
root@manage01:/usr/local/src/jenkins# sh install_jdk.sh 
/usr/local/src/jenkins

root@manage01:/home/loocha# su - root
root@manage01:~# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

4 部署tomcat

root@manage01:/usr/local/src/jenkins# ls
apache-tomcat-8.5.41.tar.gz  install_jdk.sh  jdk-8u211-linux-x64.tar.gz  jenkins.war
root@manage01:/usr/local/src/jenkins# tar xf apache-tomcat-8.5.41.tar.gz -C /usr/local/
root@manage01:/usr/local/src/jenkins# ln -s /usr/local/apache-tomcat-8.5.41 /usr/local/jenkins
root@manage01:/usr/local/src/jenkins# ls
apache-tomcat-8.5.41.tar.gz  install_jdk.sh  jdk-8u211-linux-x64.tar.gz  jenkins.war
root@manage01:/usr/local/src/jenkins# cd /usr/local/jenkins
root@manage01:/usr/local/jenkins# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
root@manage01:/usr/local/jenkins# ./bin/startup.sh 
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr/lib/jvm/jdk-8u211/jre
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Tomcat started.
root@manage01:/usr/local/jenkins# !net
netstat -lnp|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      9642/java 

root@manage01:/usr/local/jenkins# ./bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_161/jre
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar 

5 部署Jenkins

root@manage01:/home/loocha# cd /usr/local/jenkins/
root@manage01:/usr/local/jenkins# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
root@manage01:/usr/local/jenkins# cd webapps/
root@manage01:/usr/local/jenkins/webapps# ls
docs  examples  host-manager  manager  ROOT
root@manage01:/usr/local/jenkins/webapps# rm -rf *
root@manage01:/usr/local/jenkins/webapps# cp /usr/local/src/jenkins/j
jdk-8u211-linux-x64.tar.gz  jenkins.war                 
root@manage01:/usr/local/jenkins/webapps# cp /usr/local/src/jenkins/jenkins.war ROOT.war
root@manage01:/usr/local/jenkins/webapps# ls
ROOT.war
root@manage01:/usr/local/jenkins/webapps# cd ..
root@manage01:/usr/local/jenkins# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
root@manage01:/usr/local/jenkins# ./bin/startup.sh 
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_161/jre
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Tomcat started.

root@manage01:/usr/local/jenkins# !net
netstat -lnp|grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      10126/java

6. 配置Jenkins

浏览器输入机器的ip地址,默认密码会提示,

root@manage01:/usr/local/jenkins# cat /root/.jenkins/secrets/initialAdminPassword
bb34ea1f59d346b182f08b7a8f32a7c2

安装
安装
安装
安装
安装
安装
安装
安装