一、前言

1、本文主要内容

  • Docker环境下安装Jenkins
  • Jenkins的基础配置
  • 插件的安装方式
  • Jenkins角色权限说明

2、Jenkins介绍

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件,提供非常多的插件来可以满足任何项目的需要。

Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序,本篇文章将介绍采用Docker安装的方式。

Jenkins官网:https://www.jenkins.io/zh

3、本篇环境信息

  • 服务器

操作系统

硬件配置

IP

说明

CentOS 7

4C16G

10.133.28.54

部署Jenkins

  • Jenkins版本
    Jenkins安装包有两种,一种是LTS,一种是Weekly。LTS是稳定版,Weekly每周会更新一次,一般使用LTS就行了,最新版的LTS:2.235.2
  • Docker
    Docker Engine - Community : 19.03.8

二、准备工作

1、Docker 环境安装

在Linux服务器上安装Docker环境

2、开放端口号8080(Jenkins服务的端口号)

#开放8080端口号
firewall-cmd --zone=public --add-port=8080/tcp --permanent  
#重载防火墙规则
sudo firewall-cmd --reload

三、安装及配置

1、Docker环境下安装Jenkins

  • 下载Jenkins的Docker镜像
docker pull jenkins/jenkins:lts
  • 在Docker容器中运行Jenkins
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
  -u root \
  -v /home/zkgc/mydata/jenkins_home:/var/jenkins_home \
  -d jenkins/jenkins:lts

这样Jenkins就安装完成了,有Docker的时代,确实方便哈~

2、登录及基础配置

  • 登录Jenkins
    Docker运行Jenkins成功后,就可以访问这个地址了:http://10.133.28.54:8080/,第一次登录需要输入管理员密码

dockerhub jenkins版本 docker安装jenkins_centos

  • 寻找密码
    在不同平台安装,其密码寻找的方式不太一样,使用Docker安装,可以使用以下命令从容器启动日志中获取管理密码:
[zkgc@tcosmapp01 jenkins_home]$ sudo docker logs jenkins
  Running from: /usr/share/jenkins/jenkins.war
  webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
  2020-07-25 01:21:14.516+0000 [id=1]	INFO	org.eclipse.jetty.util.log.Log#initialized: Logging initialized @345ms to org.eclipse.jetty.util.log.JavaUtilLog
  2020-07-25 01:21:14.670+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
  2020-07-25 01:21:17.635+0000 [id=1]	WARNING	o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
  ……………………
  ………………
  2020-07-25 01:21:23.422+0000 [id=31]	INFO	jenkins.install.SetupWizard#init: 
  
  *************************************************************
  *************************************************************
  *************************************************************
  Jenkins initial setup is required. An admin user has been created and a password generated.
  Please use the following password to proceed to installation:
  
  ab15cf32f3f14bbf898bb5c22ac24165
  
  This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
  *************************************************************
  *************************************************************
  *************************************************************
  2020-07-25 01:21:30.679+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: Completed initialization
  2020-07-25 01:21:30.693+0000 [id=20]	INFO	hudson.WebAppMain$3#run: Jenkins is fully up and running
  2020-07-25 01:21:30.765+0000 [id=46]	INFO	h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
  2020-07-25 01:21:30.766+0000 [id=46]	INFO	hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
  2020-07-25 01:21:30.768+0000 [id=46]	INFO	hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Download metadata. 8,714 ms

其他平台寻找密码的方式不再赘述,贴上官网说明地址:https://www.jenkins.io/doc/book/system-administration/viewing-logs/

  • 自定义Jenkins,我们这里直接选择安装推荐的插件,点击之后,自动安装
  • 自动安装,等待完成即可
  • 安装完成后,创建一个用户
  • 进行实例配置,没有特殊需求默认即可
  • 大功告成,可以使用了

3、插件安装

插件时Jenkins非常强大的地方,有几千个插件供我们选择,下面我们来看下如何安装Jenkins的插件。

  • 进入路径:Manage Jenkins–>Manage Plugins
  • 插件管理
    页面如下,主要分4个tab页,有可更新,可选插件,已安装,高级。在可选插件tab页面,可以搜索自己想要安装的插件。
  • 安装角色管理插件:Role-based Authorization Strategy
  • 安装SSH插件

插件很多,非常方便,还需要什么插件,直接搜索安装即可。

4、全局工具配置

插件安装完成之后,接下来需要做一些全局的配置,例如:Git、Maven、刚才安装的SSH插件的配置等

  • 进入路径:Manage Jenkins–>Global Tool Configuration
  • 配置Maven

目前Maven最新版就是3.6.3,我们选择最新版,这样就安装上3.6.3版本的Maven了

  • 全局配置里面还提供了:JDK、Git、Gradle、Ant的配置选项,这些没有特殊需求采用默认即可,不在展开安装了。

5、系统配置

接下来我们看一下Jenkins的系统配置都有哪些可配置项,现阶段我们只需要配置一个SSH即可

  • 进入路径:Manage Jenkins --> Configure System
  • 往下滑,找到SSH remote hosts,并点击【新增】按钮,按照提示操作即可
  • 还可以配置邮箱,Github等等

6、角色权限管理

在刚才我们安装了Role-based Authorization Strategy插件,可以使用该插件来管理角色。Jenkins默认是没有做任何权限控制的,登录之后就可以做任何事情。我们需要先改变下这个配置。

  • 进入路径:Manage --> Configure Global Security 按照图上的操作,同时禁用代理,图上没标,懒了,不重新标了
  • 角色权限设置进入路径:Manage–>Manage and Assign Roles
  • 进入管理角色,设置运维角色,角色分:Global roles、Item roles、Node roles三种,根据需求设置即可
  • 进入分配角色,可以给用户分配对应的角色,目前只有一个用户,可以自行创建,创建用户非常简单,不在说明。

7、项目构建访问控制

一个公司内部,会有很多的项目,那么项目在构建的时候,我们就想要对它进行权限控制,这个单独说一下,Jenkins有个插件【Authorize Project】,就是做了这个事情,可以非常方便的控制项目的构建。

  • 插件中心安装【Authorize Project】插件,忘记如何安装的,请往上翻。
  • 在配置全局安全性模块【Manage–>Configure Global Security 】找到【Access Control for Builds】,按照下图进行操作,里面的选项可以根据需要来进行勾选
  • 在项目的侧边栏菜单中会出现授权的选项
  • 可以在授权页面选择如何进行项目的构建

剩下的自己研究研究玩玩就好啦