您的位置:首页 > 其它

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

2016-07-09 09:18 417 查看
简介
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 update
sudo apt-get install jenkins


Mac OS X上的安装方法

在Mac OS X上安装过程更简单,在官网下载pkg文件直接点击安装即可:



配置Nginx

安装Nginx:
sudo aptitude -y install nginx


删除默认配置:

cd /etc/nginx/sites-available
sudo rm default
cd ../sites-enabled
sudo 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-enabled
sudo 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.name
git 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的博客)或者为这篇文章点赞,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息