30.[Jenkins]自动化工具Jenkins安装配置入门

来源:互联网 发布:淘宝发货后找不到店铺 编辑:程序博客网 时间:2024/06/05 07:28

  • 简介
    • requirements
    • Ubuntu上的安装方法
      • 升级Jenkins
    • Mac OS X上的安装方法
    • 配置Nginx
    • 配置邮件服务
    • Jenkins集群
  • 与Github项目配合
    • 配置git插件及私钥
    • 在Jenkins中创建自由风格项目

载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/51865148

简介

Jenkins是一个适合做CI(Continuous Integretion)、CD(Continuous Delivery)和自动化测试的自动化引擎,包含丰富的插件(比如配合Gitlab、Github等源码托管平台、生成测试覆盖率分析报告等)。在我们团队目前的Python项目中Jenkins会做这样几件事:

  • Gitlab服务器上指定项目的指定分支有更新时,触发代码拉取,自动构建。
  • 执行自动化冒烟测试,生成测试报告(包含覆盖率分析、pylint代码检查结果、测试通过率分析)。
  • 如果构建失败,发送邮件给相关人员分析失败结果。
  • 如果构建成功,自动打包。
  • 在Gitlab的页面端可以看到每次的自动化测试结果。

本文首先介绍了Jenkins在Ubuntu及Mac OS X上的安装配置方法(基本功能、Nginx、邮件提醒、集群配置等),然后介绍了检测Github项目更新,开始自动化测试的基本方法。

requirements

  • 推荐Java8
  • 256MB-1GB内存(越高越好)

Ubuntu上的安装方法

# Written by: CSDN - Mars Loo的博客$ wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'$ sudo apt-get update$ sudo apt-get install jenkins

安装程序主要做了如下几件事情:

  • jenkins作为守护进程启动(\etc\init.d\jenkins
  • 创建了名为jenkins的用户
  • 日志存储在/var/log/jenkins/jenkins.log
  • 默认情况下,Jenkins监听8080端口(如果Jenkins启动失败,可能是有端口冲突)
  • 配置文件存储在/etc/default/jenkins,其中的JENKINS_HOME定义了Jenkins的家目录,对Jenkins进行备份、恢复等直接备份、恢复该目录即可(如果移动了家目录的位置,需要重新配置JENKINS_HOME的指向)。家目录下的/jobs目录保存了Jenkins中各个任务的目录,可以按照操作正常文件的方法对他们重命名、移动到其他位置、备份等,只需要记得改动后重启一下jenkins服务即可。

安装成功后使用浏览器访问服务器8080端口,首先会要求输入一串密钥:
这里写图片描述

上面是我在Mac上的安装截图,如果是Ubuntu系统可以在/var/log/jenkins/jenkins.log文件的最后几行查看初始密码,也可以使用如下命令查看:

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

输入密钥后下一步选择Install suggested plugins即可:
这里写图片描述

安装完所有推荐的插件之后,就可以开始Jenkins之旅了:
这里写图片描述

升级Jenkins

如果采用apt-get方式安装的Jenkins,可以如此升级:

# Written by: CSDN - Mars Loo的博客sudo apt-get updatesudo apt-get install jenkins

Mac OS X上的安装方法

在Mac OS X上安装过程更简单,在官网下载pkg文件直接点击安装即可:
这里写图片描述

配置Nginx

  • 安装Nginx:sudo aptitude -y install nginx
  • 删除默认配置:
cd /etc/nginx/sites-availablesudo rm defaultcd ../sites-enabledsudo rm default
  • 建立Nginx配置:
upstream app_server {    server 127.0.0.1:8080 fail_timeout=0;}server {    listen 80;    listen [::]:80 default ipv6only=on;    server_name localhost;    location / {        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header Host $http_host;        proxy_redirect off;        if (!-f $request_filename) {            proxy_pass http://app_server;            break;        }    }}

建立软连接到/etc/nginx/sites-enabledsudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
重启Nginx:sudo service nginx restart,即可通过80端口访问Jenkins服务比如http://localhost。

配置邮件服务

配置Jenkins的邮件服务时,注意先配置Jenkins Location中的系统管理员邮件地址。然后在邮件通知中进行相关的SMTP服务器配置(用户名与系统管理员邮件地址一定要一致),最后勾选发送测试邮件测试配置测试配置即可。
这里写图片描述

如果采用126邮箱的SMTP服务,可以在其设置中生成一个单独的客户端授权密码,而不是使用登录邮箱时使用的邮箱密码。

Jenkins集群

如果Jenkins所有的任务运行在一台机器上,CPU和内存会变得非常高,为了分散工作到不同的机器,可以采用集群模式使用Jenkins。在Jenkins集群中,有一台master,负责收集、展示数据(master也可以做为一个build的节点),slave们单纯负责干活,上报数据。master机器配置完成后,对于采用unix系统的slave机器的部署非常简单:

  • 将Master机器中jenkins用户的公钥拷贝到Slave机器的jenkins用户的authorized_keys中
  • Jenkins -> 系统管理 -> 管理节点 -> 新建节点,然后填写相关的信息即可。(启动方法选择Launch slave agents on Unix machines via SSH)

与Github项目配合

生产中为了保护关键资产信息安全,推荐使用Gitlab搭建公司内部代码托管服务器,本文以Github项目为例说明Jenkins配合代码托管服务器做自动化测试的过程,为Gitlab项目添加Deploy keys的方法与在Github上的操作是类似的。

配置git插件及私钥

在Jenkins的系统管理界面设置git config user.namegit config user.email的内容:
这里写图片描述

在Jenkins服务器上切换到Jenkins用户并cd到其家目录,然后生成SSH密钥对放在其~/.ssh/目录中,比如Mac上是/Users/Shared/Jenkins/.ssh/,然后配置config文件内容如下:

# Written by - CSDN: Mars Loo的博客Host github.com    HostName github.com    IdentityFile /Users/Shared/Jenkins/.ssh/id_rsa

在Github的指定项目上设置deploy key:
这里写图片描述

在Jenkins的Credential管理界面添加私钥:
这里写图片描述

在Jenkins中创建自由风格项目

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

1 0