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 ----> 服务器
-
- 需要用到的软件工具。 代码库(SVN/Git),Jenkins,如果是Java项目,则还可能用到nexus(maven的私服仓库),maven(打包工具)。
-
- 整套的工作流程是:开发人员进行项目开发—-提交代码到代码库—-在Jenkins上进行部署构建—-原本繁琐的一系列操作,就这么被Jenkins给一条龙服务了。
-
- 通过Jenkins 自己发布
-
- 一般公司至少都是有测试与生产环境两种(或者还会有预发的环境),两种环境最好分开部署两个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







