第05章 CentOS7 中 Jenkins 的安装与配置

第05章 CentOS7 中 Jenkins 的安装与配置

扬帆 Jenkins X,Jenkins X 是 Kubernetes 上现代云应用程序的 CI / CD 解决方案。
在任何规模上建立伟大的事物。

作为领先的开源自动化服务器,Jenkins提供数百个插件来支持构建,部署和自动化任何项目。

Jenkins 是什么?

Jenkins是一个独立的开源自动化服务器,可用于自动执行与构建、测试、交付或部署软件相关的各种任务。 Jenkins可以通过本机系统软件包,Docker安装,甚至可以安装Java Runtime Environment(JRE)的任何机器独立运行。

5.1 Jenkins 介绍

Jenkins X是Kubernetes上现代云应用程序的CI / CD解决方案,并且正在通过JEP-400作为子项目提出。

Jenkins X内置了应用程序和环境的概念。您不直接安装Jenkins以使用Jenkins X,Jenkins作为管道引擎嵌入作为团队安装的一部分。 Jenkins X并不打算取代Jenkins,而是以最好的开源工具为基础构建它。
将其视为实现包含电池的CI / CD的好方法,而无需自己组装。
Jenkins-X文档站点有更多详细信息。阅读博客上的精彩介绍。

Jenkins项目产生两个释放线,LTS和每周(Weekly)。根据您组织的需要,可能选择于另一个。
两个版本都以.war文件发行,本机包,安装程序和Docker容器的形式分发。带有齿轮图标的包裹由第三方维护。
LTS(长期支持)版本每12周从常规版本流中选择,作为该时间段的稳定版本。
每周(Weekly)都会发布一个新版本,为用户和插件开发人员提供错误修复和功能。

自动化CI和CD
Jenkins X不需要深入了解Jenkins Pipeline的内部结构,而是默认为您的项目实现完整CI和CD的优秀管道。

应用程序,环境和促销 每个团队都有一套环境。
然后Jenkins X通过GitOps自动管理环境和在环境之间推广新版本的应用程序

拉请求预览环境
Jenkins X会自动为您的Pull请求调整预览环境,以便在将更改合并到master之前获得快速反馈

关于问题和请求的反馈
Jenkins X会自动评论您的提交,问题和请求,并提供反馈,因为代码已准备好进行预览,会被提升为环境,或者是否会自动生成Pull Requests以升级版本。

我们这里安装的版本是:Jenkins2.121.1,官网地址:https://jenkins.io/

5.2 Jenkins 特性

5.2.1 持续集成和持续交付

作为可扩展的自动化服务器,Jenkins可以用作简单的CI服务器,也可以用作任何项目的持续交付中心。

5.2.2 安装简单

Jenkins是一个独立的基于Java的程序,随时可以运行,包含Windows,Mac OS X和其他类Unix操作系统的软件包。

5.2.3 配置简单

Jenkins可以通过其Web界面轻松设置和配置,其中包括即时错误检查和内置帮助。

5.2.4 插件(Plugins)

Jenkins在更新中心拥有数百个插件,几乎集成了持续集成和持续交付工具链中的所有工具。

5.2.5 扩展(Extensible)

Jenkins可以通过其插件架构进行扩展,为Jenkins提供了几乎无限的可能性。

5.2.6 分布式(Distributed)

Jenkins可以轻松地跨多台计算机分布式工作,帮助更快地跨多个平台推动构建,测试和部署。

5.3 Jenkins 安装

本章内容适用于在单个/本地计算机上安装Jenkins的全新安装。
Jenkins通常使用内置的Java servlet容器/应用程序服务器(Jetty)在其自己的进程中作为独立应用程序运行。
Jenkins也可以在不同的Java servlet容器(如Apache Tomcat或GlassFish)中作为servlet运行。但是,设置这些类型的安装的说明超出了本章的范围。

注意:虽然本章内容侧重于Jenkins的本地安装,但此内容也可用于帮助在生产环境中设置Jenkins。

5.3.1 Java 环境要求

Jenkins安装有单独的运行和作业执行要求。 运行Jenkins版本具有以下Java要求:

  • Java 8是唯一受支持的运行时环境,支持32位和64位版本
  • 不支持旧版本的Java
  • 不支持Java 9
  • 提供Java 10和11预览支持
    • 通过自定义程序包可以支持这些版本
    • 此页面提供了有关使用这些版本运行Jenkins的指南

这些要求适用于Jenkins系统的所有组件,包括Jenkins master,所有类型的代理,CLI客户端和其他组件。

Jenkins项目使用以下JDK / JRE执行完整的测试流程:

  • OpenJDK JDK / JRE 8 - 64位 。

支持并可以使用来自其他供应商的JRE / JDK有关已知的Java兼容性问题,请参阅问题跟踪器。

5.3.2 硬件环境要求

最低硬件要求:

  • 256 MB的RAM
  • 1 GB的驱动器空间(如果将Jenkins作为Docker容器运行,建议最小值为10 GB)

小团队的推荐硬件配置:

  • 1 GB + RAM
  • 50 GB + 的驱动器空间

软件要求:

  • Java 环境:请参阅Java Requirements页面
  • Web 浏览器:
Browser Level 1 Level 2 Comment(s)
Google Chrome Latest regular release
Mozilla Firefox Latest regular release Latest ESR release
Microsoft Internet Explorer Version 11 Versions 9 and 10 Specific OS Versions?
Apple Safari Versions 6 and newer Version 5 release (OS X only)

5.3.3 Jenkins 安装

1、通过 yum 源本地安装。

设置仓库,执行命令添加 yum 源到仓库。

[ringyin@node1 ~]$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[ringyin@node1 ~]$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

执行安装命令,前提是要求显示的安装 java 环境

[ringyin@node1 ~]$ sudo yum install -y jenkins
[ringyin@node1 ~]$ sudo rpm -ql jenkins ## 查看安装路径

安装的版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KFdlkPnf-1599485536204)(assets/1531974624509.png)]

查找安装的路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHo76jhf-1599485536208)(assets/1531974748390.png)]

安装文件路径说明:

/etc/init.d/jenkins          ## jenkins shell 运行脚本文件
/etc/sysconfig/jenkins       ## jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
/usr/lib/jenkins/            ## jenkins安装目录,war包会放在这里。
/var/lib/jenkins/            ## 默认的主目录 JENKINS_HOME。
/var/log/jenkins/jenkins.log ## jenkins日志文件。
/var/cache/jenkins/          ## jenkins war 包解压后的实际运行目录。

2、通过下载 rpm 本地安装。

安装包下载地址列表:https://pkg.jenkins.io/redhat-stable/

[ringyin@node1 ~]$ sudo rpm -ivh jenkins-2.121.1-1.1.noarch.rpm 

5.4 Jenkins 配置

5.4.1 修改配置文件

1、根据安装需要修改相关配置。

  • 查看8080端口占用情况,Jenkins默认是8080端口
[ringyin@node1 ~]$ sudo netstat -ntlp
[ringyin@node1 ~]$ sudo netstat -lnp | grep 8080
  • 修改相关配置参数 /etc/sysconfig/jenkins,例如:JENKINS_PORT 和 JENKINS_ARGS。

    如果默认端口被占用,修改配置文件,配置另外一个端口。

## 打开配置文件
[ringyin@node1 ~]$ sudo vi /etc/sysconfig/jenkins
JENKINS_JAVA_CMD="/opt/java/jdk1.8.0_172/bin/java"
JENKINS_USER="ringyin"  ## 这里用户是重要的注意点,如果是root要改为root,还有读写目录的权限要注意
JENKINS_PORT="8082"     ## 修改端口
JENKINS_ARGS="--prefix=jenkins"  ## 配置 contextPath 上下文
## 注意:我这边配置失效,不起作用
  • 为当前执行用户授予目录读写权限。
[ringyin@node1 ~]$ sudo chown -R ringyin:ringyin /var/cache/jenkins
[ringyin@node1 ~]$ sudo chown -R ringyin:ringyin /var/log/jenkins
[ringyin@node1 ~]$ sudo chown -R ringyin:ringyin /var/lib/jenkins

注意:不授权启动不起来。

  • 监控输出日志。如果要对Jenkins进行故障排除,请检查此文件。

    [ringyin@node1 ~]$ tail -f /var/log/jenkins/jenkins.log
    

5.4.2 防火墙打开端口

## 打开 8082 端口
[ringyin@node1 ~]$ sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent 
[ringyin@node1 ~]$ sudo firewall-cmd --reload ## 重启防火墙

firewall 命令说明:
–zone #作用域
–add-port=8082/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

5.4.3 启动运行 jenkins

1、创建一个特殊的专用的 Jenkins 用户(和用户组)来运行此服务。

以便使得它在监控 jenkins 构建所使用的系统资源及在现实条件下排查问题构建方面变得更加简单。

## 添加一个 jenkins 构建 jksbuildgrp 的组
[root@node1 ~]# addgroup jksbuildgrp
## 在 jksbuildgrp 中添加一个名为 ringyin 的用户
[root@node1 ~]# adduser --create-home --shell /bin/bash --groups jksbuildgrp ringyin  

2、创建服务启动文件 jenkins.service

在文件中添加配置

[ringyin@node1 ~]$ sudo vi /usr/lib/systemd/system/jenkins.service
[Unit]
Description=jenkins service
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/jenkins start
ExecStop=/etc/init.d/jenkins stop
# User=jenkins
Restart=on-abort

[Install]
WantedBy=multi-user.target

3、切换到刚才创建的用户启动 jenkins

## 切换普通用启动运行 Jenkins
[root@node1 jenkins]# whoami
root
[root@node1 jenkins]# su jenkins
Password:     ## 输入密码,回车
## 查看当前用户
[root@node1 jenkins]$ whoami
jenkins
[ringyin@node1 ~]$ sudo systemctl daemon-reload  ## 刷新服务
[ringyin@node1 ~]$ sudo systemctl start jenkins
[ringyin@node1 ~]$ sudo systemctl enable jenkins ## 设置开机启动

5.4.4 启动报错处理

启动不起来,查看 systemctl status jenkins.service 和 日志,报错 /usr/bin/java 无效,跟我们显示安装的 java 环境有关,脚本中默认取的 java 环境路径是 /usr/bin/java,有两种处理方式:

1、添加软连接。

## 启动报错 No such /usr/bin/java,建立软连接
ln -s /opt/java/jdk1.8.0_172/bin/java /usr/bin/java
ln -s /opt/jdk/bin/java 

2、修改脚本文件。

[root@node1 jenkins]# vi /etc/init.d/jenkins 
## 找到下面配置
candidates="
/opt/jdk/bin/java <----Add here ## 添加你本机的实际 java 环境位置
/etc/alternatives/java
/usr/lib/jvm/java-1.6.0/bin/java
/usr/lib/jvm/jre-1.6.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/bin/java
"

5.5 Jenkins 初始化设置

按照以上的安装过程完成安装后,启动并运行Jenkins,进入开始安装后设置向导。 此安装设置向导将指导您完成一些快速的“一次性”步骤,以解锁Jenkins,使用插件对其进行自定义,并创建第一个管理员用户,您可以通过该用户继续访问Jenkins。

5.5.1 解锁 Jenkins

首次访问新的Jenkins实例时,系统会要求您使用自动生成的密码将其解锁。

1、打开浏览器,输入http://192.168.56.70:8082(或者在安装时为Jenkins配置的端口)并等到Unlock Jenkins页面出现。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i2JKJuJv-1599485536210)(assets/1531809301165.png)]

2、从Jenkins控制台日志输出中,复制自动生成的字母数字密码(在两组星号之间)。

[ringyin@node1 ~]$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
1a4860ade374448385773745ab0b2333

3、在“解锁Jenkins”页面上,将此密码粘贴到“管理员密码”字段中,然后单击“继续”。

笔记:

  • 如果您在Docker中以分离模式运行Jenkins,则可以从Docker日志(上面)访问Jenkins控制台日志。
  • Jenkins控制台日志指示也可以获取此密码的位置(在Jenkins主目录中)。必须先在新Jenkins安装的设置向导中输入此密码,然后才能访问Jenkins的主UI。如果您碰巧跳过设置向导中的后续用户创建步骤,则此密码也可用作默认的管理员帐户密码(使用用户名“admin”)。

5.5.2 使用插件自定义Jenkins

解锁Jenkins后,将出现 Customize Jenkins页面。在这里,您可以在初始设置中安装任意数量的有用插件。

单击显示的两个选项之一:

  • 安装建议(suggested)的插件 - 安装推荐的插件集,这些插件基于最常见的用例。
  • 选择要安装的插件 - 选择最初安装的插件集。首次访问插件选择页面时,默认情况下会选择建议的插件。

注意:

如果您不确定需要哪些插件,请选择“安装建议的插件”。您可以通过Jenkins中的Manage Jenkins> Manage Plugins页面在以后安装(或删除)其他Jenkins插件。

此过程可能需要几分钟时间。安装向导显示正在配置的Jenkins的进度以及您安装的所选Jenkins插件集。

5.5.3 创建第一个管理员用户

最后,在使用插件自定义Jenkins之后,Jenkins会要求您创建第一个管理员用户。

1、出现**“创建第一个管理员用户”页面时,在相应字段中指定管理员用户的详细信息,然后单击“保存并完成”**。

2、当Jenkins准备就绪页面出现时,单击使用Jenkins开始

笔记:

  • 这个页面可能表明 jenkins 已经准备好了!相反,如果是,请单击“重新启动”
  • 如果页面在一分钟后没有自动刷新,请使用Web浏览器手动刷新页面。

3、如果需要,使用您刚刚创建的用户的凭据登录 Jenkins,您就可以开始使用Jenkins了!

提示:

从现在开始,Jenkins UI只能通过提供有效的用户名和密码凭证来访问。

5.5.4 全局安全配置

管理员账户登录 jenkins,点击左边系统管理,点击右边全局安全配置,进入配置页面,修改安全策略,默认安全策略是登录用户可以做任何事,修改为项目矩阵授权策略,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29EkMi1H-1599485536214)(assets/1533112008314.png)]

匿名用户只允许读,授予管理员用户/组拥有全部项目矩阵权限。点击保存。

5.5.5 全局工具配置

管理员账户登录 jenkins,点击左边区域系统管理,点击右边全局工具配置,进入配置页面,Maven、jdk 和 git 配置,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VYwlvi4E-1599485536218)(assets/1533113193495.png)]

5.5.6 配置 SSH 公共密钥

管理员账户登录 jenkins,点击左边系统管理,点击右边管理用户,进入管理用户列表,在列表中找到 admin 用户,点击设置图标,进入配置页面,找到 SSH Public Keys 配置区域。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w66ySqjh-1599485536220)(assets/1533113386888.png)]

5.6 Jenkins 语言本地化

5.6.1 本地化语言插件安装

Jenkins 版本 2.121.1 语言本地化需要安装一个 Locale 插件,进入插件管理页面,步骤如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eUj3eree-1599485536224)(assets/1531812678015.png)]

进入到 插件管理页面,在 Filter 中输入 locale

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W295T9uH-1599485536227)(assets/1531812147620.png)]

点击 Download and install after restart,进入到插件下载页面,下载完成后,点击最下面有一个复选框下载成功后重启。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FNFahbWE-1599485536229)(assets/1531812548013.png)]

选中后进入下面重启页面。正在重启…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y43iyxH5-1599485536231)(assets/1531812172930.png)]

重启完成后进入登录页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6rnIT3v7-1599485536233)(assets/1531812325937.png)]

输入你之前创建的管理员账号和密码进行登录

5.6.2 本地化语言设置

重新登录后,进入下面的页面,步骤如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nvnGgmXZ-1599485536236)(assets/1531812861608.png)]

点击进入到 Manage Jenkins,点击 Configure System,进入下面的页面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hpb2Sr5J-1599485536238)(assets/1531813112931.png)]

在输入框中输入 zh_CN,选中复选框,在下面点击 save,进入到下面的页面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CdXkkojs-1599485536240)(assets/1531813210419.png)]

语言本地化改为中文了。

5.7 Jenkins 安装插件

Jenkins 在初始化配置的时候默认为我们安装了很多插件,但也可以根据实际开发需要安装一些需要的插件,下面就简单介绍下我们在后续持续集成的章节中将要使用到的一些插件在此先做安装。

5.7.1 安装 Gitlab 插件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f0UnySdy-1599485536242)(assets/1533527046427.png)]

5.7.2 SSH插件安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7JX09CY-1599485536243)(assets/1533534967954.png)]

5.7.3 配置 SSH 密钥

https://help.github.com/articles/set-up-git/

5.7.4 创建代码库分支

在公共代码库主线上创建自己的分支。一个分支是代码库的个人副本。要创建一个分支,首先要登录到你的 Git 账号并跳转到 repository URL。之后点击 Fork 按钮。创建你自己的代码块副本。

一旦你已经创建了代码库分支,则应该复制一个本地副本以确保一起配置正确。在命令行运行以下命令(用你自己的用户名替换******):

## 创建副本命令
$ git clone [email protected]:<username>/game-of-life.git

这个命令会在本地硬盘克隆(检出)一个项目副本。可以构建和执行项目的本地副本。

(img-f0UnySdy-1599485536242)]

5.7.2 SSH插件安装

[外链图片转存中…(img-j7JX09CY-1599485536243)]

5.7.3 配置 SSH 密钥

https://help.github.com/articles/set-up-git/

5.7.4 创建代码库分支

在公共代码库主线上创建自己的分支。一个分支是代码库的个人副本。要创建一个分支,首先要登录到你的 Git 账号并跳转到 repository URL。之后点击 Fork 按钮。创建你自己的代码块副本。

一旦你已经创建了代码库分支,则应该复制一个本地副本以确保一起配置正确。在命令行运行以下命令(用你自己的用户名替换******):

## 创建副本命令
$ git clone [email protected]:<username>/game-of-life.git

这个命令会在本地硬盘克隆(检出)一个项目副本。可以构建和执行项目的本地副本。

猜你喜欢

转载自blog.csdn.net/pointdew/article/details/108456793
今日推荐