Article
jenkins start guide
从原始的Eclipse右键导出打包,到后面使用maven打包,就单自己一个人使用开发部署是完全没问题的。现在的jenkins是对工具的封装、可视化和自动化,对于团队合作还是有一定的作用的,时时刻刻告诉我们代码是可运行的。
但是如果一个很久前的项目,又需要新加/修改功能,一下子还捡不起来,不放心啊还得验证一把。还有就是,测试有时刻他们自己打包,不会的还的教她们使用工具,人家烦自己也累。
jenkins是一个持续集成的工具,原来也接触过,但是都没用起来,都是搞开发,大部分时刻都能自己搞定。当下由于情况比较特殊,很多代码都直接在生产改,测试环境就不顾上了,但是测试环境不能总是旧代码啊,就想着有个自动化的东西来进行部署。
主要就是完成一个代码自动化部署的工作:自己搭建一个jenkins,从oschina上拉代码,编译后部署到tomcat并重启。
# 安装Jenkins
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
nohup java -jar jenkins.war --httpPort=8081 >/var/log/jenkins.log 2>&1 &
# 建立到oschina的无密钥登录
由于项目是私有的,通过https需要输入密码,还是git方式无密钥登录方式便捷一些。本地linux执行ssh-keygen,然后把 id_rsa.pub 的内容拷贝到项目的公钥处进行配置。可以参考文档: http://git.mydoc.io/?t=154712。
也可以结合 本地ssh-agent 和 ssh-forward 来弄。
# 配置项目
第一次登录需要进行一些配置,默认创建的admin密码会保存在 ~/.jenkins/secrets/initialAdminPassword 。(在初始化页面创建新用户报错,也不知道啥原因。登录后再建吧)
新版本的按照默认安装插件还不够,需要再添加一些。登录成功后,添加如下插件:
-
Deploy to container Plugin 把war发布到容器tomcat…
-
Nexus Artifact Uploader 上传jar到私服
-
Maven Integration plugin 集成maven
-
ThinBackup 备份也是有必要的,用的越久越是必要!!
配置maven:
自己下载个maven解压后,在jenkins - Global Tool Configuration上面配置maven地址即可(把 自动安装 的勾去掉就可以填地址了)
然后配置JOB:
- 构建一个maven项目:填任务的名称,然后点击左下角的OK
- 源码管理git: 填写地址,然后新增Credentials - SSH Username with private key - From the Jenkins master ~/.ssh 起一个容易区分的名字
- 构建触发器: Build periodically - 0 0 * * * 每天一次
- Build:web/pom.xml ; clean package -Papp,dist -DskipTests 就是mvn命令的一串参数
- Post Steps: Run only if build succeeds - Execute Shell
/opt/apache-tomcat-8.0.26/bin/shutdown.sh ; sleep 1
rm -rf /opt/apache-tomcat-8.0.26/webapps/app.war
cp $WORKSPACE/web/app/target/app.war /opt/apache-tomcat-8.0.26/webapps
cd /opt/apache-tomcat-8.0.26/webapps ; ./deploy.sh
BUILD_ID=dontKillMe nohup /opt/apache-tomcat-8.0.26/bin/startup.sh &
sleep 3
注意:这里的BUILD_ID挺有意思的!!!
也可以配置 构建后操作 把包发布到tomcat manager(呵呵,无奈原始包webapps下的都被我删了),就用脚本弄了。
# 构建
完成上面的操作后,就可以执行跑一次看看效果了。其他的还有很多功能:权限等。
# 多节点(集群)
如果只有一台jenkins的时刻,远程发布项目一般都scp或者使用tomcat-manager进行处理,如果把部署的机器作为jenkins node的话,就可以把部署的任务放到该节点本地跑,就不需要考虑远程部署的问题了。
配置节点: windows
用法 : 只允许运行绑定到这台机器的Job
启动方法 : Launch slave agents via SSH(在主机配置无密钥登录,填用户、Private key:From the Jenkins master ~/.ssh)
配置好后,在界面点击 Launch agent,会把agent拷贝到机器并启动agent。
然后任务的话,配置 ** Restrict where this project can be run ** 。
# 参考
- Jenkins配置基于角色的项目权限管理
- Jenkins进阶系列之——14配置Jenkins用户和权限
- https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
- https://www.ibm.com/developerworks/cn/java/j-lo-jenkins/
–END
Related
Related posts
-
杀鸡焉用牛刀:DuckDB 正取代部分 Spark 场景
2026-02-16
-
n8n 终于还是部署到 Docker 了,经验就是要反反复复地去验证:要想少走弯路,就按官方推荐的最佳实践
2025-12-29
-
无需 Docker:n8n 2.x internal 模式下 Python Task Runner 配置实践
2025-12-25
-
命令行调用Jenkins2.63打包
2017-08-30