zoukankan      html  css  js  c++  java
  • 项目(八) 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

    QQ截图20180622115907.png-25.3kB

    (3)查看Jenkins的权限(登录用户可以做任何事情)

    系统管理--->全局安全配置

    QQ截图20180622121255.png-59.6kB

     

    十五,Jenkins实现命令结果的可视化

    (1)添加ssh方式的被管理服务器

    系统管理--->系统设置--->找到Publish over SSH可以添加对应的操作服务器

    1.png-39.5kB

    2.png-68.3kB

    3.png-23.4kB

    4.png-24.3kB

    5.png-31kB

    6.png-28.9kB

    这就添加好一台被管理的主机了。要继续添加被管理的主机只需要重复之前的过程

    QQ截图20180622225504.png-19.2kB

    (2)创建新任务*

    11.png-34.1kB

    12.png-67kB

    13.png-16.2kB

    14.png-43.8kB

    (3)立刻构建任务并执行

    31.png-39.1kB

    32.png-44.7kB

    33.png-42.5kB

    34.png-45.6kB

    35.png-38.3kB

    36.png-92.6kB

     

    十六,Jenkins+svn实现持续化集成

    需求,开发改完代码上传到svn上,然后运维打包最新版本代码部署到业务服务器上。
    svn的部署与应用请参考专题(一)

     

    16.1 设置svn的连接密码,并进行代码的部署测试

    411.png-48.4kB

    412.png-42.8kB

    413.png-37kB

    414.png-31kB

    415.png-27.4kB

    416.png-36.5kB

    417.png-45kB

    420.png-41.4kB

    419.png-45.1kB

    设置完毕后,应用保存。
    在windows上对svn的yunjisuan项目进行版本提交后
    选择立刻构建项目

    QQ截图20180626002020.png-20.5kB

     
    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两台服务器作为项目的构建目标

    911.png-42.6kB

    912.png-37.4kB

    将以下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/

    913.png-51.5kB

    选择立刻构建进行测试

     
    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. ├── 344272221350256241347256227346234200347273210346236266346236204347244272344276213346250241346235277357274210344270200357274211.png
    10. ├── 344272221350256241347256227346234200347273210346236266346236204347244272344276213346250241346235277357274210344272214357274211.png
    11. └── 344272221350256241347256227346234237344270255346236266346236204346250241347211210357274210344270200357274211.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. ├── 344272221350256241347256227346234200347273210346236266346236204347244272344276213346250241346235277357274210344270200357274211.png
    21. ├── 344272221350256241347256227346234200347273210346236266346236204347244272344276213346250241346235277357274210344272214357274211.png
    22. └── 344272221350256241347256227346234237344270255346236266346236204346250241347211210357274210344270200357274211.png
    23. 3 directories, 5 files
     

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

    QQ截图20180626011200.png-5kB

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

    QQ截图20180626011434.png-28.9kB

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

    QQ截图20180626011605.png-14.7kB

    QQ截图20180626011617.png-30kB

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

    QQ截图20180626011751.png-32.8kB

    (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. └── 346226260345273272346226207346234254346226207346241243.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. └── 346226260345273272346226207346234254346226207346241243.txt
    20. 3 directories, 4 files

    QQ截图20180626011930.png-19.7kB

    至此,测试成功!

     

    十七,Jenkins实现ansible可视化

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

    1.png-44.8kB

    2.png-68.3kB

    3.png-51kB

    4.png-17.6kB

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

    5.png-36.3kB

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

    11.png-24.5kB

    12.png-52.5kB

    13.png-17.1kB

    14.png-33.5kB

    15.png-9.6kB

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

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

    16.png-87.3kB

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

    17.png-51.7kB

    18.png-53.4kB

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

    19.png-35.5kB

    (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

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

    21.png-31.3kB

    22.png-32.6kB

    23.png-41.3kB

    55.png-49kB

    56.png-41.3kB

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

    99.png-42.4kB

  • 相关阅读:
    Openwave V7 不支持中文的解决方法
    VBS的疑惑,它们不考虑效率吗?
    删除顽固 NTServic和webacc.exe病毒。
    我的电脑怎么多了一些乱七八糟的东西。
    阿怒再发,突然的发现,为了编码输入速度!
    庆祝开博,也算给自己加油!
    超级简单的工厂模式温度转换
    阿怒乱弹之VS05重构的提取方法操作不方便啊!
    随笔嘛!就是随便下笔~呵呵!
    Oracle数据库一样平常维护手册2
  • 原文地址:https://www.cnblogs.com/hai-better/p/10015694.html
Copyright © 2011-2022 走看看