jenkins环境搭建
Jenkins启动方式有两种
1, 直接启动war包,java –jar Jenkins.war
2, 将war包放到容器中,将war包放到tomcat的webapp目录下,启动tomcat即可
Jenkins默认会放在运行用户的根目录下的.jenkins 中
如果使用容器启动可以修改目录
1, 使用web容器的管理工具设置JENKINS_HOME参数
在tomcat的catalina.sh 中编辑
在# OS specific support. $var _must_ be set to either true or false.上面添加:export JENKINS_HOME=""
在引号中填入你的路径
2, 在启动容器之前,设置JENKINS_HOME环境变量
在/etc/profile中编辑
在最后加入:export JENKINS_HOME=xxxx,保存生效
使用容器启动,jenkins使用的端口号即为容器的端口号,修改需要修改容器端口
使用war包直接启动,修改启动命令
java -jar jenkins.war --ajp13Port=-1 --httpPort=8081
Jenkins 系统设置
单击系统管理—global tool configure中设置jdk,git,maven等安装信息
取消选中的自动安装复选框,输入已安装的信息即可
1, jdk,Jenkins支持sun jdk 不支持openjdk,别名任意
2, git
此处的地址为git的可执行路径
3, maven
Jenkins创建job
1, 创建项目,输入job名称,选择项目风格,单击OK
2, 进行项目源配置
配置git项目源,查看git配置说明
构建触发器,即什么时候执行jenkins自动化部署
Post Steps
使用maven项目,第一次会提示没有pom.xml文件,不用处理,git拉回项目之后会有pom.xml文件的
A,本地tomcat部署
选择run only if build success or is unstable之后执行shell
#!/bin/bash
#copy file and restart tomcat
export JAVA_HOME=””jdk路径
export CATALINA_HOME=””tomcat容器位置
export CATALINA_BASE=””tomcat容器位置
export BUILD_ID=dontKillMe
export BUILD_ID=dontKillMe这一句很重要,因为该job启动完后执行下一job,jenkins直接把tomcat进程杀了,所以无论脚本中怎么写了启动tomcat的命令,他是不会启动的。虽然上述截图中显示了Tomcat started、server restarted但是访问项目地址是访问不了的,不明白
tomcat_path=””tomcat路径
project=””项目名称
war_name=””打包后的war包名称
war_path=http://ip:port/jenkins/job/ManenDemo/ws/targetserver_port=port 只修改ip和port
file_path=~/.jenkins/jobs/ManenDemo/workspace/spring_provider/target 编译好的war包地址
$tomcat_path/bin/shutdown.sh
sleep 3s
echo "rm -rf ${tomcat_path}/webapps/ROOT/*"
rm -rf ${tomcat_path}/webapps/ROOT/*
cd $file_path
cp ${war_name} ${tomcat_path}/webapps/ROOT/
cd $tomcat_path/webapps/ROOT/
unzip ${war_name}
rm -rf ${war_name}
sleep 5s
#$tomcat_path/bin/startup.sh
cd $tomcat_path/bin/
./startup.sh
echo "server restarted"
b,tomcat是远程的
使用脚本的方式部署到远程tomcat
使用Deploy to container Plugin插件部署到远程tomcat
需要安装在jenkins中安装插件Deploy to container Plugin
在jenkins的构建后步骤中选择deploy war/ear to a container
其中war/ear就是当前项目下的构建打包好的war包地址,使用相对地址,如果不是自动打包,需将已有war包放在当前项目路径下
Container的用户名密码为tomcat管理员的用户密码
需要设置远程tomcat的管理员用户名密码,修改远程Tomcat容器下的conf–tomcat-users.xml文件
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admin" password="123456" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
这里需要在构建之前先启动tomcat,不然会报错,提示拒绝连接等信息