基于Docker平台的Jenkins安装与Blue Ocean使用入门(1)

2022-06-22 14:41:09 浏览数 (1)

环境介绍:

代码语言:javascript复制
CentOS 7.5
Docker 19.03.8
Jdk 1.8.0
Git 2.20.4

注意:

 如果将Jenkins作为Docker 容器运行,安装JDK跟Git不是必需的。

Docker安装教程:

https://blog.csdn.net/qq_44895681/article/details/105540702

在Docker中下载并运行Jenkins

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

代码语言:javascript复制
[root@localhost ~]# docker search jenkins
NAME                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
jenkins                                Official Jenkins Docker image                   4758                [OK]                
jenkins/jenkins                        The leading open source automation server       2021                                    
jenkinsci/blueocean     //推荐               https://jenkins.io/projects/blueocean           512                                     
jenkinsci/jenkins                      Jenkins Continuous Integration and Delivery …   382    

[root@localhost ~]# docker pull jenkinsci/blueocean      //下载镜像
Using default tag: latest
latest: Pulling from jenkinsci/blueocean
e7c96db7181b: Pull complete
...

[root@localhost ~]# docker images
REPOSITORY                      TAG                      IMAGE ID            CREATED             SIZE
jenkinsci/blueocean             latest                   c522b7f778ef        21 hours ago        569MB           

[root@localhost ~]# docker run -itd -p 8080:8080 jenkinsci/blueocean      

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur   

 映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。

访问Jenkins/blueocean Docker容器

 通过终端/命令提示符访问docker exec ,则可以添加一个选项 --name jenkins-blueocean,这会为 jenkinsci/blueocean 容器命名为 "jenkins-blueocean" 。这意味着你可以使用如下命令访问容器(通过单独的终端/命令提示符窗口) :

docker exec -it jenkins-blueocean /bin/bash

代码语言:javascript复制
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur 

[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
         //若docker run没有使用--name,也可用容器运行ID访问容器

bash-4.4$ java -version       //容器内java环境版本
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (IcedTea 3.12.0) (Alpine 8.212.04-r0)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

bash-4.4$ git --version      //容器内git版本
git version 2.20.4

bash-4.4$ netstat -antulp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:50000           0.0.0.0:*               LISTEN      6/java
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      6/java

访问Jenkins Docker容器控制台日志

 您可能需要访问Jenkins控制台日志。例如,在解锁 Jenkins 作为安装后设置向导的一部分时。如果在docker run时没有指定分离模式选项 -d ,那么Jenkins控制台日志则是通过运行此Docker命令提示符窗口显示。

 否则,您可以通过访问Jenkins控制台日志 Docker logs中 的 jenkinsci/blueocean ,使用以下命令:

docker logs <docker-container-name>

 您的 <docker-container-name> 可以使用docker ps 命令获得 。如果您在运行docker run 命令时指定了 --name 参数(如:--name jenkins-blueocean ),则只需使用以下 docker logs 命令:

docker logs jenkins-blueocean

 如果没有指定--name,也可以使用容器运行时的ID来查看容器日志。

代码语言:javascript复制
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
ca1e1c655590        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   2 hours ago         Up 2 hours          0.0.0.0:8080->8080/tcp, 50000/tcp   silly_wilbur

[root@localhost ~]# docker logs ca1e1c65

安装后设置向导

在这里插入图片描述

代码语言:javascript复制
[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
bash-4.4$ cat /var/jenkins_home/secrets/initialAdminPassword
12a1f53845254ce9ae67d221c181be94

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

自定义Jenkins

两个选项可以设置:

  • 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例。
  • 选择要安装的插件 - 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:

 可以看到上面有些插件安装失败,在所有插件安装完之后可以点击“重试”,来继续安装之前安装失败的插件,也可以点击“继续”,再按照下面的方法安装插件。

插件安装失败解决方法:https://blog.csdn.net/qq_44895681/article/details/104633654

创建第一个管理员用户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Blue Ocean 入门

安装 Blue Ocean

Blue Ocean 可以用以下方式安装:

  • 作为 已有Jenkins实例上的一组插件
  • Jenkins-Docker镜像的一部分

在已有Jenkins实例上安装

 在大多数平台安装Jenkins时,默认情况下不安装 Blue Ocean 插件 及其所有其他依赖插件(组成Blue Ocean“插件套件”)。

 要在现有的Jenkins实例上安装Blue Ocean插件套件,您的Jenkins实例必须运行Jenkins 2.7.x或更高版本。

 任何拥有 Administer 权限(通过 基于Matrix 安全设置)的Jenkins用户都可以在Jenkins实例上安装插件 。拥有次权限的Jenkins用户还可以配置系统上其他用户的权限。

要将Blue Ocean安装到您的Jenkins实例:

  1.如果需要,请确保您已经登录到jenkins(作为具有 管理员 权限的用户).

  2.从Jenkins主页(即Jenkins经典用户界面的仪表板),单机左侧的 管理Jenkins ,然后单击中心的 管理插件 。

  3.点击 可用的 选项卡,然后在 过滤 文本框键入 blue ocean ,将过两次插件列表为名称/描述包含“blue”和“ocean”的插件名单。

在这里插入图片描述   4.选择 安装 列顶部的 Blue Ocean 插件复选框,然后单击 立刻下载并在重启后安装 按钮(推荐)或 安装而不重新启动按钮 。

注意:

  无需选择此过滤列表中其他插件的复选框,因为 Blue Ocean 插件具有其他插件的依赖关系(构成Blue Ocean的插件套件),当您点击安装, 其他插件将被自动选择和安装。如果你选择 安装不重启 按钮, 你可能需要重启Jenkins来获取Blue Ocean的完整功能。

  Blue Ocean 在安装后不需要额外的配置,现有的pipeline 和其他项目(如自由风格作业)将照常运行。但是,请注意, 首次使用特定的 Git 服务(即GitHub,Bitbucket或普通Git服务器)在 Blue Ocean中创建pipeline 时,Blue Ocean会提示您输入credentials 以访问Git服务器上的存储库。在Blue Ocean可以将 Jenkinsfile 写入存储库之前

作为Jenkins-Docker镜像的一部分

  Blue Ocean套件也与Jenkins捆绑在一起,作为Jenkins Docker镜像 (jenkinsci/blueocean)的一部分,该镜像可以从 Docker Hub 存储库获得。

访问 Blue Ocean

  一旦Jenkins环境安装了Blue Ocean,登录到Jenkins经典UI 后,您可以通过点击左侧的 打开Blue Ocean 来访问Blue Ocean页面。或者,您可以在您的Jenkins url后面追加 /blue 直接访问Blue Ocean (如 http://192.168.2.73:8080/blue)。

在这里插入图片描述

在这里插入图片描述

创建流水线

  Blue Ocean 能够更容易的在Jenkins中创建一个流水线。

  流水线可以由源代码控制中存在的Jenkinsfile 生成, 或者使用 Blue Ocean 流水线编辑器 生成一个新的流水线(作为 Jenkinsfile 会提交到源代码控制中)。

配置流水线项目

在这里插入图片描述

GitHub仓库

在这里插入图片描述   在 Connect to GitHub 部分的Your GitHub access token字段, 输入你的 GitHub 访问令牌。

在这里插入图片描述   如果你没有 GitHub 访问令牌, 点击 Create an access key here

创建访问令牌

 1.在一个新的选项卡中, 登录 GitHub 账户并且在 GitHub的 New Personal Access Token 页面,为你的GirHub访问令牌 (e.g. Blue Ocean)输入一个简短的 Token description。 Note: 访问令牌通常是一个字母数字字符串,它通过你的GitHub 账户对你的GitHub账户访问各种特性和区域的权限进行相应的处理。新的访问令牌过程 (通过上面的 Create an access key here 链接触发) 具有预选的合适权限, Blue Ocean 需要访问你的GitHub账户并与其进行交互。

 2.向下滚动直到页面的末尾,然后点击 Generate token。

 3.在生成的 Personal access tokens 页面, 复制新生成的访问令牌。

 4.回到Blue Ocean, 粘贴访问令牌到 Your GitHub access token*字段并点击 *Connect。   你当前/登陆的Jenkins用户现在可以访问 GitHub a账户 (由你的访问令牌提供), 所以你现在可以 选择 GitHub 账户/组织和存储库。

 Jenkins 为Jenkins用户注册了带有以下详细信息的凭证:

Domain: blueocean-github-domain

ID: github

Name: <jenkins-username>/****** (GitHub Access Token)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

选择 GitHub 账户/组织和存储库

此时, Blue Ocean 提示你选择 GitHub 账户或你所在的组织, 以及它包含的用于构建你流水线项目的存储库。

 1.在 Which organization does the repository belong to? 部分, 点击:

  • 你的 GitHub 账户为你自己的 GitHub 仓库中的或GitHub的其他地方创建流水线项目。
  • 你所在的组织为组织内的GitHub仓库创建流水线项目。

 2.在 Choose a repository 部分, 点击存储库 (在你 GitHub 账户或组织内) ,从而构建你的流水线项目。如果你的仓库的列表很长, 你可以使用 Search 选项来筛选这个列表。

在这里插入图片描述 3.点击 Create Pipeline。  Blue Ocean 将会扫描你本地仓库的分支来获得 Jenkinsfile 并为每个包含 Jenkinsfile 的分支运行流水线。如果Blue Ocean 找不到任何 Jenkinsfile, 会提示你通过 流水线编辑器 (通过再次点击 Create Pipeline)创建一个。

注意: 通过Blue Ocean创建的流水线项目实际上是 "多分支流水线"。因此, Jenkins在你仓库的任何分支中寻找至少一个Jenkinsfile 。

在这里插入图片描述

在这里插入图片描述  这样我们就构建了一个简单的流水线项目。

0 人点赞