Jenkins介绍

在DevOps时代,持续集成和持续交付(CI/CD)已经耳熟能详,从构建到部署的自动一体化已经是成熟的技术。而Jenkins就是满足从构建到部署的自动化工具。Jenkins是以插件的形式来提供服务,他提供1000个插件来支持构建,部署,自动化,可以满足任何项目的需要。
1、持续集成和持续交付:作为一个可扩展的自动化服务器,Jenkins可以用做简单的CI(持续集成)工具,同样它也可以作为CD(持续交付)中心。
2、简易安装:Jenkins设计一个基于Java的独立程序,可以立即运行,包含Win,Mac OS,Linux操作系统。
3、配置简单:Jenkins有个Web界面,我们可以通过Web轻松设置和配置,其中包括即时错误检查和内置帮助。
4、插件:通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。
5、扩展:Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。
6、分布式:Jenkins 可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建、测试和部署。
参考文档:https://www.jenkins.io/zh/
要学会参考文档,文档是中文。

环境说明

安装都采用Linux系统:CentOS7.5,以虚拟机的方式进行
物理环境:Win10
注意:虚拟机需要能连接外网。

传统命令行安装

安装参考文档:https://pkg.jenkins.io/redhat-stable/
1、下载Jenkins 的Yum仓库源

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

如果失败,则自己创建,jenkins.repo内容如下:

[root@node3 ~]# cat /etc/yum.repos.d/jenkins.repo 
[jenkins]
name=Jenkins-stable
baseurl=http://pkg.jenkins.io/redhat-stable
gpgcheck=1

2、导入密钥

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3、安装Java环境,并安装Jenkins
Java环境说明:一般不用Java7了,我们安装Java8或者Java11都行

yum install -y fontconfig java-11-openjdk
yum -y install jenkins               #如果第一次安装失败,Ctrl+C取消,然后再执行一遍此命令。

4、启动Jenkins

systemctl enable jenkins
systemctl restart jenkins
systemctl status jenkins

Jenkins默认监听8080端口,查看端口8080

[root@node3 ~]# ss -ntpul
Netid  State      Recv-Q Send-Q                   Local Address:Port                                  Peer Address:Port              
udp    UNCONN     0      0                            127.0.0.1:323                                              *:*                   users:(("chronyd",pid=10896,fd=1))
udp    UNCONN     0      0                                  ::1:323                                             :::*                   users:(("chronyd",pid=10896,fd=2))
tcp    LISTEN     0      128                                  *:22                                               *:*                   users:(("sshd",pid=1006,fd=3))
tcp    LISTEN     0      100                          127.0.0.1:25                                               *:*                   users:(("master",pid=1336,fd=13))
tcp    LISTEN     0      50                                  :::8080                                            :::*                   users:(("java",pid=37214,fd=114))
tcp    LISTEN     0      128                                 :::22                                              :::*                   users:(("sshd",pid=1006,fd=4))
tcp    LISTEN     0      100                                ::1:25                                              :::*                   users:(("master",pid=1336,fd=14))

Jenkins的文件目录

[root@node3 ~]# rpm -ql jenkins
/etc/init.d/jenkins               #Jenkins的启动目录
/etc/logrotate.d/jenkins          #日志相关文件
/etc/sysconfig/jenkins            #Jenkins的主配置文件
/usr/bin/jenkins
/usr/lib/systemd/system/jenkins.service
/usr/sbin/rcjenkins
/usr/share/java/jenkins.war
/usr/share/jenkins
/usr/share/jenkins/migrate
/var/cache/jenkins
/var/lib/jenkins                  #Jenkins的工作目录(非常重要)
/var/log/jenkins

重点说一下Jenkins的主配置文件和工作目录

Jenkins主配置文件

我们在这里主要配置 Jenkins 的工作目录、启动用户、启动端口。

vi /etc/sysconfig/jenkins
...
JENKINS_HOME="/var/lib/jenkins"         #规定Jenkins的工作目录的路径jenkins数据,配置都放在这里jenkins主目录默认在/var/lib/jenkins  最重要的可以改成别的地方,把文件复制到那个目录就可以了,改的时候要看权限备份的时候,把目录可以打个包备份就可以了。
JENKINS_USER="jenkins"                  #Jenkins 默认的用户为 jenkins,生产环境建议使用 jenkins 用户,然后使用 sudo 进行授权,为了避免各种权限问题,改为 root 用户
JENKINS_PORT="8080"                     #前面说过Jenkins的默认监听端口是8080,这里可以修改

Jenkins 主程序目录
/usr/lib/jenkins/jenkins.war 是 Jenkins 的主程序文件

升级jenkins用得:

将来要升级jenkins的办法 简单办法直接把新版的war包 替换到这里的war包,把这个war包移走,搞个新版的war包过来,然后重启jenkins

systemctl restart jenkins

Jenkins的工作目录

/var/lib/jenkins 是 Jenkins 默认配置的主工作目录,我们可以在主配置文件进行设置

[root@node3 ~]# ll /var/lib/jenkins/
total 24
drwxr-xr-x. 3 jenkins jenkins   21 Mar 23 06:56 %C
-rw-r--r--. 1 jenkins jenkins 1660 Mar 23 07:02 config.xml
-rw-r--r--. 1 jenkins jenkins  156 Mar 23 07:02 hudson.model.UpdateCenter.xml
-rw-------. 1 jenkins jenkins 1712 Mar 23 07:02 identity.key.enc
-rw-r--r--. 1 jenkins jenkins  171 Mar 23 07:02 jenkins.telemetry.Correlator.xml
drwxr-xr-x. 2 jenkins jenkins    6 Mar 23 07:02 jobs                    #存放Jobs的配置及每次构建的结果的目录
-rw-r--r--. 1 jenkins jenkins  907 Mar 23 07:02 nodeMonitors.xml
drwxr-xr-x. 2 jenkins jenkins    6 Mar 23 07:02 nodes
drwxr-xr-x. 2 jenkins jenkins    6 Mar 23 07:02 plugins                 #存放插件的目录,等会在Web界面配置所安装过的插件全部都存放此类目录中
-rw-r--r--. 1 jenkins jenkins   64 Mar 23 07:02 secret.key
-rw-r--r--. 1 jenkins jenkins    0 Mar 23 07:02 secret.key.not-so-secret
drwx------. 2 jenkins jenkins  164 Mar 23 07:02 secrets                 #存放Jenkins第一次登陆密钥的目录
drwxr-xr-x. 2 jenkins jenkins   67 Mar 23 07:02 updates
drwxr-xr-x. 2 jenkins jenkins   24 Mar 23 07:02 userContent
drwxr-xr-x. 3 jenkins jenkins   56 Mar 23 07:02 users
#还有一个重要的目录,默认没有,只有当构建项目时才会自动创建,:worksspace:工作区目录,每次 job 执行构建时的工作目录,

其他目录及文件

/var/log/Jenkins Jenkins 日志文件目录
/etc/init.d/Jenkins Jenkins 启动文件

安装Jenkins

浏览器访问本地IP:8080
1、输入密钥,如下查看:

[root@node3 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 
73b64d67aa8f4c9999b15eb244142916             #复制粘贴即可

在这里插入图片描述

2、安装插件,这个方法哪一个都行,第一个是安装Jenkins社区中默认的插件,第二个是自己选择安装那些插件
但是两个的安装速度都是非常慢的,所以我这里直接将我们准备的离线插件,copy到/var/lib/jenkins/plugins/目录下,然后重启Jenkins服务即可
Jenkins离线插件包,网盘连接:链接: https://pan.baidu.com/s/1OUlyKG8Po8VzPxZivjDR9g 提取码: wmsq 。
在这里插入图片描述
如下操作:

tar xzvf jenkins.tar.gz -C /var/lib/jenkins/plugins/
ll /var/lib/jenkins/plugins/               #查看插件是否copy到plugins目录中
systemctl restart jenkins

然后在点击"安装推荐的插件"就会检查插件,之后会自动跳过安装插件这一项。

3、设置Jenkins用户
在这里插入图片描述
4、设置Jenkins URL
在这里插入图片描述
然后点击"使用Jenkins",就会进入到Jenkins的Web界面。
会发现还是中文的。
点击"系统管理—>插件管理"来查看插件是否安装成功,选择"已安装",里面只要由一大堆插件就说明安装成功。

5、创建Jenkins用户
点击"系统管理—>找到"安全",点击’管理用户’",之后点击"新建用户":
在这里插入图片描述
6、回到Jenkins的主页面,在右上角点击"注销",然后用"aaa"用户进行登陆,能登陆即可。
至此使用传统命令行的方式安装Jenkins完成,这里只是实现了最基本的用法,更复杂的用法,下篇说明。
但最好的学习方法就是,参考文档。

采用Docker的方法安装Jenkins

1、配置Docker的Yum源,(这里不在配置,主要方法:使用阿里云的Docker源)安装Docker,
安装Docker:

yum install -y docker-ce
systemctl restart docker
systemctl enable docker
systemctl status docker

Docker版本:

[root@node3 ~]# docker --version
Docker version 20.10.13, build a224086

拉取Jenkins镜像

这里建议使用的Docker镜像是:jenkinsci/blueocean image
(来自 the Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。
1、拉取镜像(最新版本)

docker pull jenkinsci/blueocean

2、运行镜像

docker run \
  -u root \                 #以root用户运行容器
  --rm \                    #(可选)关闭时自动删除Docker容器
  -d \                      #(可选)在后台运行容器,即“分离”模式)并输出容器ID。如果您不指定此选项,则在终端窗口中输出正在运行的此容器的Docker日志。
  -p 8080:8080 \            #端口映射,前面代表宿主机的端口,后面的代表Docker的端口,一般前面的可以随意修改
  -p 50000:50000 \          #(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 
  -v /root/jenkins_data:/var/jenkins_home \           #(可选,但是强烈建议输入此条命令)通过Docker创建的卷,关联到Jenkins的工作目录,我们可以直接在宿主机上查看Jenkins的工作目录信息。
  -v /var/run/docker.sock:/var/run/docker.sock \      #(可选)/var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 
  jenkinsci/blueocean                  #Jnekins镜像名称。

3、浏览器访问Jenkins并配置,下面的步骤就和上面使用传统命令安装的一样了。(插件直接通过)/root/jenkins_data目录进行copy.

K8S安装部署Jenkins

稍后说明…

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐