热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins搭建和使用

JenkinsJenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署等等。Jenkins可以支持多种语言࿰

Jenkins

Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署等等。Jenkins可以支持多种语言(比如:java、c#、php等等),也兼容ant、maven、gradle等多种第三方构建工具,同时跟git、svn无缝集成,也支持直接与源代码托管网站(比如github、bitbucket)直接集成。 



安装部署

使用Centos 7系统,在安装Jenkins之前,需要安装相应的软件。

1. 安装JDK

tar -zxf jdk-8u91-linux-x64.tar.gz -C /home/mmtrix/local/
ln -s jdk1.8.0_91 java

2. 安装maven(其它的构建工具也可以,取决于项目使用什么)

tar -zxf apache-maven-3.0.5-bin.zip -C /home/mmtrix/local/
ln -s apache-maven-3.0.5 maven

3. 安装ant

tar -zxf apache-ant-1.9.7-bin.tar.gz -C /home/mmtrix/local/
ln -s apache-ant-1.9.7 ant

4. 安装git(其它的代码管理工具也可以,取决于项目使用什么)

5. 安装启动Jenkins

java -jar jenkins.war

在启动过程中,会自动将war包解压到~/.jenkins目录下,并生成一些目录和配置文件。启动参数也可自行调整。



更新和下载插件

启动完成后,打开浏览器http://localhost:8080/ (如果不是安装在本机,应该localhost换成服务器对应的ip) 
首次启动会提示很多插件已经过时,需要更新,建议升级到最新版本。 

同时建议安装以下插件,方便支持git项目以及向远程机器上传文件及执行命令。

插件升级之后重启jenkins以便其生效。



安全设置

默认情况下,jenkins允许匿名用户做任何事情,这意味着谁都可以使用jenkins进行发布,这显然不够安全,jenkins支持多种安全认证机制,下面演示最传统的用户名/密码模式如何设置: 

进入Configure Global Security界面: 

参考上图,采用jenkins内置的用户名、密码认证机制,同时允许用户注册,匿名用户拥有管理权(首次配置,建议运行匿名用户有管理权限,以避免操作错误后,无法正常进入jenkins管理界面,等其他用户权限设置好之后,再去掉用户的管理权) 
保存好之后,jenkins页面右上角有一个sign up注册链接,点击注册用户: 

注册好之后再进入安全设置界面,看到用户列表多了一个mmtrix用户,并拥有管理权限,使用mmtrix用户登录,成功之后去掉匿名用户管理权限,一般也去掉用户注册的勾选(实际应用中,一般都是提前建好所有用户名),保存好,在访问jenkins:

这样就只有登录用户才能使用了。 



系统配置

在正式部署项目前,还有几个关键的参数需要设置。 
先进入系统设置界面

首先是jdk

git 

ant 

maven

如果部署过程中,还需要运行shell脚本,以及通过scp向远程机器上传文件,则需要配置下面的:

SCP site解释: 
Hostname: 远程服务器的主机名 
Port: SSH使用端口号 
Root Repository Path: SCP拷贝时路径的根目录 
User Name: 用户名 \ Password、PassPhrase:密码 
Keyfile:本地ssh密钥的路径 
还有一个强大的publish over ssh,不仅可以向远程服务器上传文件,还能执行远程服务器上的shell脚本

跟SCP的参数设置相似,不过多了一个Test Configuration的按钮,参数配置正确,点击该按钮,会尝试连接远程服务器,成功会显示success。



使用教程

以在github上的一个测试项目maven-test作为演示

点击OK之后,最上面部分,除了Project name,其他不用填写

源代码管理部分,选择的是一个git项目,所以选择Git,Repository URL填写项目的git地址,github需要密码才能访问,所以Credentials这里要选择相应的用户名、密码,git获取源代码的分支名称,一般为master,也可以改成想要的分支。 

Credentials部分下拉框首次进来是空的,点击右侧Add,进行添加

Build部分,本项目是一个maven项目,选择Invoke top-level Maven targets 

保存,创建完成,可以测试一下。

Build success。



远程分发

很多项目需要将编译成功的j文件发送到远程服务器上,利用scp插件,在Add post-build Action中选择Publis artifacts to SCP Repository 

参考下面的参数填写 

Source:分发的文件 
Destination:目的路径,相对前面配置的远程服务器的根目录 
配置好了之后,再次build就可以了 



用户权限设置

实现不同用户显示对应视图views中不同的jobs,使用Role-based Authorization Strategy插件。

1.安装Role-based Authorization Strategy 

安装成功之后,重启jenkins使其生效。

2.“Manage Jenkins” → “Configure Global Security” → “Role-Based Strategy” 

3.管理分组

“Manage Jenkins” → “Manage and Assign Roles” 

点击“Manage Roles”进入界面 

创建两个全局的用户组:job-read和job-create 
job-read加Overall和Job的Read权限,job-create只加Job的create权限 

创建两个项目用户组:deploy和QA 
project roles创建的时候Pattern正则表达式与脚本里不一样,比如过滤test开头的项目,要写成test.*而不是test* 



创建用户

点击“Create User”,然后创建用户,一共有3个用户:mmtrix、liufei、test 



分配角色

“Manage and Assign Roles”→“Assign Roles”设置 
global roles,给mmtrix分配管理员的组,匿名用户分配到job_read组和job_create组

project roles,给liufei分配到deploy组,将test分配到QA组 

退出用户登录,匿名用户可以查看现有的Job和新建Job,但是没办法build 

采用liufei登录,在All view中可以查看所有的Job,但是能build只能符合maven开头的Job 

可以编辑“My views”,让其显示特定的Jobs 

点击“+”,创建想要的view 
Include a global view:显示所有的内容 
List view:可以通过类似正则表达式配置自己想要显示的Jobs 
My view:自动显示用户有权限访问的Jobs 

这里选择My view 


转自:https://my.oschina.net/zyqjustin/blog/707878


推荐阅读
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 过去查询Mysql的时候,都见3306对所有端口开放着,感觉不安全。netstat -anlp | grep mysqltcp 0&am ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
author-avatar
犹豫的海波V5_697
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有