51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2374|回复: 0
打印 上一主题 下一主题

[selenium] Jenkins 搭建与集群发布环境构建

[复制链接]
  • TA的每日心情
    无聊
    半小时前
  • 签到天数: 528 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-4 14:34:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
    目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。

    Jenkins 作为一款软件开发的神器,能帮团队很优雅地解决编译和发布等工作。支持超多的第三方系统软件,自定义 Shell 脚本,丰富的插件,可以让你游刃有余地完成很多自动化的工作。

    Jenkins 能解决以下几类问题:
    •   自动化构建软件
    •   自动化检查
    •   构建可持续的自动化测试
    •   自动化打包和分发部署

      
    安装 Jenkins
     提供两种安装方式。

    1.下载 Jenkins
    解压 war 文件,运行 java -jar jenkins.war
    访问 http://localhost:8080 根据页面指导完成安装
      
    2.docker
    我更加推荐这种方式。仓库地址:https://hub.docker.com/_/jenk...

    docker pull jenkins
    挂载目录到宿主机,例如使用/var/jenkins_home,需要给目录设置访问权限
    chown 1000 /var/jenkins_home
    启动。 使用 root 账号进行登录,暴露端口 8080,tcp 端口50000
    docker run -u root -itd --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins
    根据指导完成注册
    安装插件。一定要安装插件: Publish Over SSH
    使用 Jenkins 做集群部署流程

    client 发送编译指令到 Jenkins Server.
    Jenkins Server 从 Git repo 拉取代码
    编译,打包
    把编译后的结果通过 ssh push 到业务服务器 server1、server2、server3
    配置业务服务器
    安装插件 Publish Over SSH
    进入到 /configure 页面。配置 jenknis 的私钥,和远程服务地址和端口等等。

    特别留意Remote Directory,jenkins 推送过去的文件都会出现在这个目录,设置远程服务器的绝对路径有可能无效。使用相对路径即可。
    如果有多台机器,都在这里进行配置。另外,需要把 Jenkins 的公钥,添加到 server1-3 的 ~/.ssh/authorized_keys。
    •   1. ssh  jenkins 宿主机
    •   2. cat /var/jenkins_home/.ssh/id_rsa.pub
    •   3. 把公钥存放到 server1-3 的`~/.ssh/authorized_keys`
    •   4. 这样 jenkins 这台机器就可以免密登陆到 server1-3
    •   5. 如果 Jenkins 机器没有 /var/jenkins_home/.ssh/,那么就通过`ssh-keygen`生成

    测试机器的连接。
    配置发布任务。
    测试环境和产品环境应该使用不同的任务,因为服务会部署到不同的机器。执行流程也可能有差异。
    1.新建 FreeStyle 项目

    2. 配置仓库
    •   配置代码仓库,git,svn 等等都 ok
    •   Repositories 使用 ssh 的模式。
    •   需要把 /var/jenkins_home/.ssh/id_rsa.pub 添加到仓库的 access_key 里面。保证 jenkins 可以免密获取到代码,这个是最简单那的配置

    3. 配置任务
    以 node 项目为例,Jenkins shell 默认使用 非交互+非登陆式,所以获取不到环境变量。解决办法第一行需要写成 #!/bin/bash -l
    编译任务都在这里完成了。

    4. 发布到远程服务器
    添加一个构建后的操作,Send build artifacts over SSH
    推送文件到远程机器,在远程机器执行备份和重启









    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 10:19 , Processed in 0.064391 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表