项目(八) Jenkins持续集成与构建
Jenkins环境搭建
由于Jenkins是依赖于java的,所以先介绍java环境的搭建
1)使用官方的二进制包解压安装,官方二进制包的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
(2)安装java(解压,移动即可)
(3)配置java环境变量/etc/profile
(4)Jenkins的下载和运行
然后我们在浏览器上进行访问:http://IP:8080 出现如下界面
Jenkins介绍和初始化配置
Jenkins的作用?
- 可视化管理服务器
- 持续构建,可以直接去svn或者git上拉取代码并下发到服务器上
- 可视化ansible
Jenkins监听端口8080
- nohup java -jar jenkins.war &> /tmp/jenkins.out & #启动Jenkins方式
- netstat -antup | grep java #查看监听端口
- http://IP:8080 #访问方式
Jenkins默认密码路径,需要到Jenkins所在的服务器进行查看
/root/.jenkins/secrets/initialAdminPassword
Jenkins初始化配置:
将服务器上的密码复制过来到浏览器上提交后,静心等待,出现如下界面
(2)新添加一个用户yunjisuan
(3)查看Jenkins的权限(登录用户可以做任何事情)
系统管理--->全局安全配置
十五,Jenkins实现命令结果的可视化
(1)添加ssh方式的被管理服务器
系统管理--->系统设置--->找到Publish over SSH可以添加对应的操作服务器
这就添加好一台被管理的主机了。要继续添加被管理的主机只需要重复之前的过程
(2)创建新任务*
(3)立刻构建任务并执行
十六,Jenkins+svn实现持续化集成
需求,开发改完代码上传到svn上,然后运维打包最新版本代码部署到业务服务器上。
svn的部署与应用请参考专题(一)16.1 设置svn的连接密码,并进行代码的部署测试
设置完毕后,应用保存。
在windows上对svn的yunjisuan项目进行版本提交后
选择立刻构建项目
[root@webB tmp]# hostname -I
192.168.200.138
[root@webB tmp]# ls /tmp/test/
mycode
[root@webB tmp]# ls /tmp/test/mycode/
python.py 云计算最终架构示例模板(一).png 云计算最终架构示例模板(二).png 云计算期中架构模版(一).png
16.2 模拟真实环境web服务器的代码部署和备份
[root@localhost tmp]# mkdir -p /www/{html,backup}
[root@localhost tmp]# tree /www/
/www/
├── backup #html网页目录的备份放置目录
└── html #网页目录
在jenkins上设置webA,webB两台服务器作为项目的构建目标
将以下shell脚本代码复制到构建目标的Exec command里
#备份web服务器旧网页目录代码,并将部署到服务器上的新代码覆盖到网页目录里
cd /www
/usr/bin/tar zcf html_$(date +%F-%H-%S).tar.gz html
rm -rf html/*
mv html_*.tar.gz backup/
mv /tmp/test/* /www/html/
选择立刻构建进行测试
#检查webA和webB,代码构建情况
[root@webA tmp]# tree /www/
/www/
├── backup
│ └── html_2018-06-25-12-58.tar.gz #旧网页目录备份
└── html
└── mycode
├── python.py
├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\270\200\357\274\211.png
├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\272\214\357\274\211.png
└── \344\272\221\350\256\241\347\256\227\346\234\237\344\270\255\346\236\266\346\236\204\346\250\241\347\211\210\357\274\210\344\270\200\357\274\211.png
3 directories, 5 files
[root@webB tmp]# tree /www/
/www/
├── backup
│ └── html_2018-06-25-12-58.tar.gz #旧网页目录备份
└── html
└── mycode
├── python.py
├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\270\200\357\274\211.png
├── \344\272\221\350\256\241\347\256\227\346\234\200\347\273\210\346\236\266\346\236\204\347\244\272\344\276\213\346\250\241\346\235\277\357\274\210\344\272\214\357\274\211.png
└── \344\272\221\350\256\241\347\256\227\346\234\237\344\270\255\346\236\266\346\236\204\346\250\241\347\211\210\357\274\210\344\270\200\357\274\211.png
3 directories, 5 files
16.3 模拟真实环境,开发进行代码回滚
(1)右键点击共享目录选择TortoiseSVN--->Show log
右键点击想要回滚的版本选择Revert to this revision
此时你发现你的共享目录里的东西已经被回滚到了指定的版本。
最后我们千万别忘记了右键点击共享目录,将结果进行提交(SVN commit)
(2)重新进行jenkins项目构建,并检查部署情况
[root@webA tmp]# tree /www/
/www/
├── backup
│ ├── html_2018-06-25-12-58.tar.gz
│ └── html_2018-06-25-13-15.tar.gz
└── html
└── mycode
├── python.py
└── \346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt
3 directories, 4 files
[root@webB tmp]# tree /www/
/www/
├── backup
│ ├── html_2018-06-25-12-58.tar.gz
│ └── html_2018-06-25-13-15.tar.gz
└── html
└── mycode
├── python.py
└── \346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt
3 directories, 4 files
至此,测试成功!
十七,Jenkins实现ansible可视化
(1)安装jenkins ansible插件,启动ansible插件
最后进入安装界面最下方勾选,安装完成时重启Jenkins
(2)系统管理--->全局工具配置---->配置ansible
(3)新建一个项目任务,使用ansible进行构建,跑个shell和copy模块
新建一个叫做ansible_test的新项目任务,过程略
进入项目的配置里。构建一个基于ansible的任务
然后点击立刻构建功能,并查看输出结果
(4)新建一个项目任务,使用ansible-playbook进行构建
#准备一个playbook的配置文件
[root@ansible scripts]# cat /service/scripts/test.yaml
---
- hosts: all
tasks:
- name: test jenkins ansible-playbook
shell: echo "welcome to yunjisuan" >> /tmp/yunjisuan.txt
然后新建一个新的项目任务,进行配置
最后查看构建的可视化输出结果
项目(八) Jenkins持续集成与构建的更多相关文章
- jenkins持续集成:构建多个job同时执行
在jenkins 构建任务时,同时只能构建2个,但是有时候可能涉及到需要同时执行多个任务(大于2个),如果不能同时运行的话,就需要等待上一个执行完了,再执行第三个 比如用例非常多,需要把不同的用例分给 ...
- Docker+Jenkins持续集成环境(5): android构建与apk发布
项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...
- Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...
- Docker+Jenkins持续集成
Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现 前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...
- windows部署jenkins持续集成maven测试项目不能访问测试报告
买了一台阿里云的服务器用于练习maven test项目,系统版本wiondows server 2012,将jenkins war包部署在Tomcat服务器上,项目构建后,生成的报告在C:\Windo ...
- Jenkins持续集成企业实战系列之Jenkins手动构建-----04
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
- 接口自动化平台搭建(四),自动化项目Jenkins持续集成
一.Jenkins的优点 1.传统网站部署流程 一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果 ...
- 手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
- 自动化项目Jenkins持续集成
一.Jenkins的优点 1.传统网站部署流程 一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果 ...
随机推荐
- MariaDB——(三) MariaDB 10.0.15 standard replication主从复制搭建
最近看了一下MariaDB的常规复制章节,就按部就班的搭建了一下最简单的主从复制.需要的硬件环境很简单(在虚拟机VMware中搭建): 1:两台server:Master: 192.168.6.133 ...
- idea引用本地jar包的方法及报错解决
1 首先将本地jar包打入mvn本地仓库 cmd mvn install:install-file -Dfile=E://xx.jar 本地jar包绝对路径 -DgroupId=com.ccp -Da ...
- scrapy实战之scrapyrt的使用
scrapyrt为scrapy提供了一个http接口,有了它,我们不用再执行命令,而是直接请求一个http接口来启动项目,如果项目是部署在远程的,会比较方便. 1.安装: pip install sc ...
- 发现一个非常有趣好用的git博主,收录热门OC、swift项目三方架构
日常学习: https://github.com/iOShuyang/Book-Recommend-Github
- HTML怎么实现字体加粗
HTML的加粗标签是<b>标签,是用来对你自定文字加粗,写法如下: 字体加粗:<b>这里是加粗的内容</b> 这样就可以实现加粗了!
- sc.exe用法详解
sc.exe是帮助开发 WindowsNT 服务的工具,这里我来说说如何使用好sc.exe. 我们打开命令提示符(以管理员身份运行): 输入sc delete ServiceName(服务名) 即可 ...
- TCP流量控制
TCP的流量控制,是为了更好的传输数据,控制流量不要发送太快而至于接收端没有足够的缓存的接收. 利用滑动窗口,可以很方便的控制传输 rwnd:可以控制接收窗口大小.ACK代表确认位,ack代表确认字段 ...
- vs2015 iis express启动不了及安装DotNetCore.1.0.0-VS2015Tools.Preview2失败的解决方法
直接用管理员账户打开cmd,进入exe所在的文件夹在运行命令DotNetCore.1.0.0-VS2015Tools.Preview2.exe SKIP_VSU_CHECK=1不要加引号. PS:如果 ...
- 好用的treeGrid
jquery easyui 官网:http://www.jeasyui.net/plugins/186.html 下面以学校班级情况,先贴出效果图吧! 数据库设计:红色框中为必须要有的列,右边三个为 ...
- linux上安装mysql5.6
CentOS-6.6+MySQL-5.6 部署环境操作系统:CentOS-6.6-x86_64-bin-DVD1.isoMySQL 版本:mysql-5.6.26.tar.gz操作用户:root系统 ...