实用jenkins2 介绍、安装及启动

本文介绍了Jenkins2.x版本在持续集成和部署、Pipeline、用户界面、安装体验、安全性等方面的显著改进,以及与1.x版本的对比,包括新特性的PipelineasCode、现代用户界面和安装向导的引入。
摘要由CSDN通过智能技术生成

在这里插入图片描述

jenkins介绍

Jenkins是一款开源的自动化服务器工具,主要用于持续集成和持续部署(CI/CD)。它由Java编写,支持多种操作系统平台,如Windows、macOS和Linux。Jenkins可以帮助软件开发团队自动化各种开发任务,例如代码构建、测试和部署,从而提高开发效率,减少人为错误,确保软件质量。

Jenkins的主要特性包括:

  • 易于安装和配置:Jenkins提供易于安装的软件包,同时也可以通过Java Web Archive(WAR)文件在任何支持Java的Web服务器上部署。
  • 插件丰富:Jenkins社区提供了大量的插件,可以扩展Jenkins的功能,例如支持各种版本控制系统(如Git、SVN)、构建工具(如Maven、Gradle)和部署平台(如Docker、Kubernetes)。用户可以根据需要安装和配置这些插件。
  • 持续集成和持续部署:Jenkins可以监听代码仓库中的变更,当代码发生变更时自动触发构建流程,完成编译、测试和打包等步骤,并将构建的产品部署到测试或生产环境。
  • 工作流支持:Jenkins支持Pipeline,这是一个编写和存储持续交付流程的系统。Pipeline使用一种特定的领域特定语言(DSL),允许用户定义整个构建流程,包括多个阶段和步骤。
  • 主-从架构:Jenkins可以配置成主-从架构,一个主节点负责调度构建任务,多个从节点在分布式环境中执行这些任务。这允许大规模地扩展构建环境,提高资源利用率。
  • 定时构建和触发器:Jenkins支持定时构建,可以在固定的时间或使用Cron表达式进行构建。同时,也支持多种触发器,比如在代码提交后自动触发构建。
  • 用户管理和安全:Jenkins提供了用户管理功能,管理员可以为不同的用户分配不同的权限。同时,Jenkins也支持与LDAP、Active Directory等目录服务集成进行身份验证和授权。
  • 监控和通知:Jenkins可以监控构建过程中的错误和失败,并通过邮件、Slack等方式通知团队成员。

jenkins 1.x 与 2.x的区别

Jenkins 1.x和2.x是Jenkins这个持续集成工具的两个主要版本。随着2.x版本的发布,Jenkins引入了许多重要的新特性和改进,使得Jenkins变得更加强大和易于使用。以下是一些Jenkins 1.x和2.x之间的主要区别:

  • Pipeline as Code:
    Jenkins 2.x中最重要的特性之一是Pipeline as Code。在2.x版本中,Jenkins引入了Pipeline插件,它允许用户使用Groovy语言在一个Jenkinsfile里定义完整的构建、测试和部署流程。这意味着Pipeline的定义现在可以被版本控制,与应用代码一起管理,从而使得构建流程更加透明和可维护。而在1.x版本中,构建流程往往是通过Jenkins UI手动配置的,不易于版本控制。

  • 用户界面和用户体验:
    Jenkins 2.x引入了一个更现代化的用户界面,提供了改进的用户体验和更好的视觉效果。而Jenkins 1.x的用户界面相对老旧,没有那么直观。

  • 安装向导:
    在Jenkins 2.x中,首次安装Jenkins时会出现一个安装向导,它会引导用户安装推荐的插件集合,帮助用户更快地启动和运行Jenkins。而Jenkins 1.x没有这样的安装向导,用户需要自己选择和安装所需的插件。

  • 安全性和权限管理:
    Jenkins 2.x在安装初期就更加关注安全性,它要求用户在安装过程中设置管理员密码,并且默认启用了CSRF保护和其他安全设置。而在Jenkins 1.x中,这些设置需要用户手动配置。

  • 插件管理:
    虽然Jenkins 1.x和2.x都支持丰富的插件生态,但Jenkins 2.x提供了更好的插件管理体验,包括对插件的依赖性管理和问题诊断的改进。

  • 改进的配置页面:
    Jenkins 2.x对配置页面进行了改进,使得配置作业更加简单直观。例如,分段的配置页面使得配置作业的不同部分更加清晰。

总的来说,Jenkins 2.x的发布是Jenkins发展过程中的一个重要里程碑。它不仅提供了Pipeline as Code这一革命性的新特性,还在用户体验、安全性、安装过程和插件管理等方面做了重要的改进。这些改进使得Jenkins 2.x相比于1.x版本更加强大、易用且安全。

安装

硬件要求(推荐)

  • 4 GB 内存
  • 50GB 磁盘空间

安装包

Unix/Linux环境下,我个人推荐是下载war包来运行。因为这种方式非常简单,只要求安装对应版本的JDK。

下载

下载地址

https://get.jenkins.io/war-stable/

版本区别

  • 2.346.3 之前支持JDK8
  • 2.361.1 之后只支持JDK11以及更新的版本

运行

我下载的是2.346.3版本,下载后放置在 $HOME/work/jenkins2 目录下,执行以下命令

java -jar $HOME/work/jenkins_2/jenkins-2.346.3_LTS.war

jenkins进程启动后,默认监听8080端口,注意不要被其他程序占用

首次访问

浏览器里输入

http://localhost:8080

会出现输入密码的界面,同时也会告诉你在哪找初始密码
在这里插入图片描述

比如我本机首次运行时就在控制台输出了初始密码,且告诉我万一错误跳过了在哪查找初始密码

启动脚本

以下分享我个人总结的启动脚本

#!/bin/bash
source ~/.bash_profile
export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"
export PATH="$JAVA_HOME/bin:$PATH"

# kill jenkins first
jenkins_pid="`ps -ef | grep jenkins | grep java | awk '{print $2}'`"
if [[ $jenkins_pid != '' ]];then
  kill -9 $jenkins_pid
fi


cd /Users/automator/work/jenkins2
rm -rf nohup.log


SERVICE_OPTS="${SERVICE_OPTS} -Xms512m -Xmx2g"
SERVICE_OPTS="${SERVICE_OPTS} -server"
SERVICE_OPTS="${SERVICE_OPTS} -XX:InitiatingHeapOccupancyPercent=40"
SERVICE_OPTS="${SERVICE_OPTS} -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"
SERVICE_OPTS="${SERVICE_OPTS} -XX:MaxDirectMemorySize=1g"
SERVICE_OPTS="${SERVICE_OPTS} -XX:SurvivorRatio=10"
SERVICE_OPTS="${SERVICE_OPTS} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$/Users/automator/work/jenkins2/java.hprof"
SERVICE_OPTS="${SERVICE_OPTS} -Djava.awt.headless=true"
SERVICE_OPTS="${SERVICE_OPTS} -Dsun.net.client.defaultConnectTimeout=10000"
SERVICE_OPTS="${SERVICE_OPTS} -Dsun.net.client.defaultReadTimeout=30000"

export JAVA_HOME=`/usr/libexec/java_home -v 17.0.8`
export PATH="$JAVA_HOME/bin:$PATH"
export JENKINS_HOME=/Users/automator/work/jenkins2/jenkins_home
export JENKINS_JOBS_LOCATION=/Users/automator/work/jenkins2/jenkins_home/jobs


nohup java $SERVICE_OPTS -Dhudson.util.ProcessTree.disable=true -Dhudson.util.ProcessTreeKiller.disable=true -Dhudson.model.DownloadService.noSignatureCheck=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true -jar /Users/automator/work/jenkins2/jenkins.war --httpPort=8080 > jenkins.log 2>&1 &

nohup启动命令解释:

  • nohup: 这个命令用于运行另一个命令,使得即使你关闭了终端或者注销了用户,这个命令依然会在后台运行。nohup 是 “no hang up” 的缩写,字面意思是“不挂断”。
  • java: 这是运行Java应用程序的命令。
  • $SERVICE_OPTS: 这是一个环境变量,它包含了传递给Java虚拟机(JVM)的一系列选项。这个变量需要在执行命令之前定义。
  • -Dproperty=value: 这些是设置Java系统属性的参数。在此命令中,设置了以下属性:
  • hudson.util.ProcessTree.disable=true: 禁用Jenkins的进程树追踪,这可能用于防止Jenkins管理或终止它启动的外部进程。
  • hudson.util.ProcessTreeKiller.disable=true: 禁用ProcessTreeKiller特性,ProcessTreeKiller是Jenkins用来清理作业执行期间产生的子进程的机制。
  • hudson.model.DownloadService.noSignatureCheck=true: 禁用Jenkins对插件更新站点元数据签名的验证,通常用于局域网环境或无法连接到公网的情况下。
  • hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true: 禁用跨站请求伪造(CSRF)保护。CSRF保护是一个安全特性,用来防止恶意网站发起的未授权命令。出于安全考虑,通常不推荐在生产环境中禁用CSRF保护。
  • -jar $HOME/work/jenkins2/jenkins.war: 运行Jenkins的WAR文件。$HOME/work/jenkins2/jenkins.war指定了Jenkins WAR文件的位置。
  • –httpPort=8080: 指定Jenkins服务的HTTP端口号为8080。
  • > jenkins.log: 将标准输出重定向到jenkins.log文件中,这个文件用于存储Jenkins的日志输出。
  • 2>&1: 将标准错误(2)也重定向到标准输出(&1),这意味着错误信息也会被写入到jenkins.log文件中。
  • &: 将命令放到后台执行。

整条命令的作用是在后台启动Jenkins服务,使用8080端口,同时忽略挂断信号,并将输出和错误日志保存到jenkins.log。此外,它还禁用了进程树追踪、进程树杀手、插件签名检查和CSRF保护等一些特性。

参考文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

namedlock

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值