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

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

环境介绍:

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插件。

[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

[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来查看容器日志。

[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

安装后设置向导

11.png

[root@localhost ~]# docker exec -it ca1e1c65 /bin/bash
bash-4.4$ cat /var/jenkins_home/secrets/initialAdminPassword
12a1f53845254ce9ae67d221c181be94

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


自定义Jenkins


两个选项可以设置:


  • 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例。

  • 选择要安装的插件 - 选择安装的插件集。当你第一次访问插件选择页面时,默认选择建议的插件。

13.png14.png

12.png

注意:


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


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


创建第一个管理员用户

15.png16.png17.png

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”的插件名单。

18.png

  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)

19.png20.png


创建流水线


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


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


配置流水线项目

21.png

GitHub仓库

22.png

  在 Connect to GitHub 部分的Your GitHub access token字段, 输入你的 GitHub 访问令牌。

23.png

  如果你没有 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)

24.png

25.png26.png

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


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


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


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

  • 你所在的组织为组织内的GitHub仓库创建流水线项目。

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

27.png

3.点击 Create Pipeline。


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


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

28.png29.png


这样我们就构建了一个简单的流水线项目。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7天前
|
NoSQL Redis 数据安全/隐私保护
Docker中Redis的安装与配置
本文主要讲解如何在Docker环境中搭建Redis环境,并进行相关配置
68 5
Docker中Redis的安装与配置
|
1天前
|
jenkins Java 持续交付
Docker 安装 Jenkins 2.414
【2月更文挑战第1天】 Docker 安装 Jenkins 2.414 镜像下载、插件配置
26 3
Docker 安装 Jenkins 2.414
|
2天前
|
Ubuntu Linux 开发工具
Wsl安装Docker总结
Wsl安装Docker总结
8 0
|
2天前
|
存储 NoSQL Redis
【docker专题_06】docker安装redis
【docker专题_06】docker安装redis
15 1
|
2天前
|
消息中间件 Java Kafka
docker安装kafka(wurstmeister)
docker安装kafka(wurstmeister)
10 0
|
16天前
|
数据安全/隐私保护 Docker 容器
【Docker】安装gitlab 傻瓜式复制安装
【Docker】安装gitlab 傻瓜式复制安装
25 0
|
16天前
|
jenkins 持续交付 数据安全/隐私保护
【Docker】安装Jenkins 亲测 傻瓜式安装
【Docker】安装Jenkins 亲测 傻瓜式安装
25 0
|
16天前
|
消息中间件 Docker 容器
【Docker】安装RabbitMQ
【Docker】安装RabbitMQ
14 0
|
16天前
|
NoSQL Redis 数据安全/隐私保护
【Docker】安装Redis 通俗易懂 亲测没有任何问题 只需三步
【Docker】安装Redis 通俗易懂 亲测没有任何问题 只需三步
16 0
|
16天前
|
关系型数据库 MySQL 数据安全/隐私保护
【Docker】安装MySQL 通俗易懂 亲测没有任何问题
【Docker】安装MySQL 通俗易懂 亲测没有任何问题
34 0