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-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的博客)或者为这篇文章点赞,谢谢!
- 30.[Jenkins]自动化工具Jenkins安装配置入门
- Jenkins入门系列--Jenkins安装与配置
- Jenkins入门系列--Jenkins安装与配置
- Jenkins 入门系列--Jenkins 的安装配置
- linux jenkins 自动化部署工具安装
- Jenkins:自动化构建工具
- Jenkins配置自动化构建
- Jenkins自动化发布配置
- [jenkins工具]之二:jenkins的安装配置
- Jenkins入门系列之— Jenkins安装与配置
- jenkins入门手册----02第二章 Jenkins安装与配置
- Jenkins入门系列之 Jenkins安装与配置
- Jenkins入门系列之—Jenkins安装与配置
- jenkins入门手册----02第二章 Jenkins安装与配置
- Jenkins入门系列之—— Jenkins安装与配置
- 【Jenkins】Jenkins入门系列之——02第二章 Jenkins安装与配置
- 使用Jenkins配置自动化构建
- 使用Jenkins配置自动化构建
- 随笔
- 以wordcount理解spark的执行过程
- HTTP 1.1与HTTP 1.0的比较
- 18.1节练习
- HTTP协议的头信息详解
- 30.[Jenkins]自动化工具Jenkins安装配置入门
- HDU 5302 Connect the Graph (构造)
- 【训练题】二分图判定
- oracle视图 v$type_size
- Sphinx+MySQL+PHP 12亿DNS数据秒查
- JDBC简单用法
- CSS计数器
- JVM参数-XX:+HeapDumpOnOutOfMemoryError 在哪里设置,如何设置?
- BroadcastReceiver 使用方式