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项目进行版本提交后
选择立刻构建项目

 
  1. [root@webB tmp]# hostname -I
  2. 192.168.200.138
  3. [root@webB tmp]# ls /tmp/test/
  4. mycode
  5. [root@webB tmp]# ls /tmp/test/mycode/
  6. python.py 云计算最终架构示例模板(一).png 云计算最终架构示例模板(二).png 云计算期中架构模版(一).png
 

16.2 模拟真实环境web服务器的代码部署和备份

 
  1. [root@localhost tmp]# mkdir -p /www/{html,backup}
  2. [root@localhost tmp]# tree /www/
  3. /www/
  4. ├── backup #html网页目录的备份放置目录
  5. └── html #网页目录

在jenkins上设置webA,webB两台服务器作为项目的构建目标

将以下shell脚本代码复制到构建目标的Exec command里

 
  1. #备份web服务器旧网页目录代码,并将部署到服务器上的新代码覆盖到网页目录里
  2. cd /www
  3. /usr/bin/tar zcf html_$(date +%F-%H-%S).tar.gz html
  4. rm -rf html/*
  5. mv html_*.tar.gz backup/
  6. mv /tmp/test/* /www/html/

选择立刻构建进行测试

 
  1. #检查webA和webB,代码构建情况
  2. [root@webA tmp]# tree /www/
  3. /www/
  4. ├── backup
  5. │   └── html_2018-06-25-12-58.tar.gz #旧网页目录备份
  6. └── html
  7. └── mycode
  8. ├── python.py
  9. ├── \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
  10. ├── \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
  11. └── \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
  12. 3 directories, 5 files
  13. [root@webB tmp]# tree /www/
  14. /www/
  15. ├── backup
  16. │   └── html_2018-06-25-12-58.tar.gz #旧网页目录备份
  17. └── html
  18. └── mycode
  19. ├── python.py
  20. ├── \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
  21. ├── \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
  22. └── \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
  23. 3 directories, 5 files
 

16.3 模拟真实环境,开发进行代码回滚

(1)右键点击共享目录选择TortoiseSVN--->Show log

右键点击想要回滚的版本选择Revert to this revision

此时你发现你的共享目录里的东西已经被回滚到了指定的版本。
最后我们千万别忘记了右键点击共享目录,将结果进行提交(SVN commit)

(2)重新进行jenkins项目构建,并检查部署情况

 
  1. [root@webA tmp]# tree /www/
  2. /www/
  3. ├── backup
  4. │ ├── html_2018-06-25-12-58.tar.gz
  5. │ └── html_2018-06-25-13-15.tar.gz
  6. └── html
  7. └── mycode
  8. ├── python.py
  9. └── \346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt
  10. 3 directories, 4 files
  11. [root@webB tmp]# tree /www/
  12. /www/
  13. ├── backup
  14. │   ├── html_2018-06-25-12-58.tar.gz
  15. │   └── html_2018-06-25-13-15.tar.gz
  16. └── html
  17. └── mycode
  18. ├── python.py
  19. └── \346\226\260\345\273\272\346\226\207\346\234\254\346\226\207\346\241\243.txt
  20. 3 directories, 4 files

至此,测试成功!

 

十七,Jenkins实现ansible可视化

(1)安装jenkins ansible插件,启动ansible插件

最后进入安装界面最下方勾选,安装完成时重启Jenkins

(2)系统管理--->全局工具配置---->配置ansible

(3)新建一个项目任务,使用ansible进行构建,跑个shell和copy模块

新建一个叫做ansible_test的新项目任务,过程略

进入项目的配置里。构建一个基于ansible的任务

然后点击立刻构建功能,并查看输出结果

(4)新建一个项目任务,使用ansible-playbook进行构建

 
  1. #准备一个playbook的配置文件
  2. [root@ansible scripts]# cat /service/scripts/test.yaml
  3. ---
  4. - hosts: all
  5. tasks:
  6. - name: test jenkins ansible-playbook
  7. shell: echo "welcome to yunjisuan" >> /tmp/yunjisuan.txt

然后新建一个新的项目任务,进行配置

最后查看构建的可视化输出结果

项目(八) Jenkins持续集成与构建的更多相关文章

  1. jenkins持续集成:构建多个job同时执行

    在jenkins 构建任务时,同时只能构建2个,但是有时候可能涉及到需要同时执行多个任务(大于2个),如果不能同时运行的话,就需要等待上一个执行完了,再执行第三个 比如用例非常多,需要把不同的用例分给 ...

  2. Docker+Jenkins持续集成环境(5): android构建与apk发布

    项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...

  3. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

  4. Docker+Jenkins持续集成

    Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现   前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...

  5. windows部署jenkins持续集成maven测试项目不能访问测试报告

    买了一台阿里云的服务器用于练习maven test项目,系统版本wiondows server 2012,将jenkins war包部署在Tomcat服务器上,项目构建后,生成的报告在C:\Windo ...

  6. Jenkins持续集成企业实战系列之Jenkins手动构建-----04

    注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...

  7. 接口自动化平台搭建(四),自动化项目Jenkins持续集成

    一.Jenkins的优点 1.传统网站部署流程   一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果 ...

  8. 手把手教你利用Jenkins持续集成iOS项目

    前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...

  9. 自动化项目Jenkins持续集成

    一.Jenkins的优点 1.传统网站部署流程   一般网站部署的流程 这边是完整流程而不是简化的流程 需求分析—原型设计—开发代码—内网部署-提交测试—确认上线—备份数据—外网更新-最终测试 ,如果 ...

随机推荐

  1. MARK DOWN 书写格式说明

    MarkdownPad2 书写格式说明: Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,而MarkdownPad2是其中一种支持M ...

  2. JavaScript易混淆的零碎知识点积累

    1.callee属性 和 caller属性. 区别:两者的调用对象不同 arguments.callee:指向拥有这个arguments对象的函数,在递归运算中经常用到. functionName.c ...

  3. OpenResty的现状、趋势、使用及学习方法

    Nginx 是俄罗斯人发明的, Lua 是巴西几个教授发明的,中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中,实现了 OpenResty 这个高性能服务端解决方案. 通过 OpenRest ...

  4. php正则讲解 及与 js的正则比较

    正则:用于检索字符串的规则: js正则: var reg=/规则/ reg是一个对象,在浏览器下: 所以研究他的属性和方法 属性: global是修饰符,代表全局检索 g ignorecase 忽略大 ...

  5. 关于mysql文件导入提示“Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of @@CHARACTER_SET_CLIENT”问题分析

    今天用myssqldump导出数据,然后再导入另外mysql数据库时,提示Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of ...

  6. 记录一次 “ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程序” 的处理过程

    一.今天同事反馈业务化运行的数据中心库发生了oracle无法连接的情况,导致所有业务系统无法正常运作的问题.报:“ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程序” 二.收到这 ...

  7. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

  8. 6.3 基于二分搜索树、链表的实现的集合Set复杂度分析

    两种集合类的复杂度分析 在[6.1]节与[6.2]节中分别以二分搜索树和链表作为底层实现了集合Set,在本节就两种集合类的复杂度分析进行分析:测试内容:6.1节与6.2节中使用的书籍.测试方法:测试两 ...

  9. python———day01

    一.变量命名规则: 1,要有描述性: 2,变量名只能以  下划线,数字,字母组成,不可以有特殊符号和空格: 3,不能以中文为变量名(规范): 4,不能以数字开头: 5,保留字符(即关键字:如print ...

  10. verilog 介绍

    Verilog HDL Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由.VHDL和Verilog HDL两者相比,VHDL的书写规则比Verilog HDL烦琐一些,但 ...