目录
[1、安装 Docker](#1、安装 Docker)
[2、获取 Jenkins 镜像](#2、获取 Jenkins 镜像)
[4、访问 Jenkins](#4、访问 Jenkins)
[4.1 查看初始密码问题](#4.1 查看初始密码问题)
[5、配置 Jenkins](#5、配置 Jenkins)
[5.1 安装插件](#5.1 安装插件)
[5.2 创建管理员用户](#5.2 创建管理员用户)
[5.3 实例配置](#5.3 实例配置)
[1、安装SSH Plugin](#1、安装SSH Plugin)
一、Jenkins是什么
Jenkins可以简单理解为一个自动化工具 ,它帮助软件开发团队实现了持续集成和持续交付的过程。持续集成是指将不同开发者的代码合并到主干之前,自动进行构建、测试等操作,以确保代码质量和稳定性。持续交付则是指在每次代码变更后,自动进行打包和部署,以便快速将新功能或修复发布给用户。
使用Jenkins,你可以设置一个任务或流水线,在其中定义一系列需要执行的步骤。比如,当有新的代码提交到版本控制系统(如Git)时,Jenkins会检测到变更,并触发相应的构建任务。它会自动下载最新的代码、编译项目、运行各种测试(单元测试、集成测试等),甚至还能进行静态代码分析来找出潜在问题。
如果构建和测试成功,Jenkins可以进一步将生成的软件包部署到目标服务器上,使其能够被用户访问到。这样做的好处是节省了手动操作的时间和错误风险,并确保了每次更新都经过验证并可靠地发布。
总之,Jenkins是一个强大且灵活的工具,通过自动化执行构建、测试和部署等任务,提高了开发团队的效率和代码质量,同时降低了出错的可能性。
二、常见的部署Jenkins的方法
最常见的部署 Jenkins 的方法有以下几种:
-
独立安装:可以从 Jenkins 官网上下载适合你操作系统的安装包,然后按照官方文档的步骤进行安装。这种方式比较灵活,可以在本地服务器或云服务器上进行安装。
-
容器化部署:Jenkins 提供了官方的 Docker 镜像,可以通过 Docker 来运行 Jenkins。只需安装好 Docker 环境,在命令行中执行相应指令即可拉取镜像并运行 Jenkins 容器。
三、为什么选择容器化部署
容器化部署通常使用 Docker 镜像来实现。Docker 是一种流行的容器化平台,它提供了一种打包应用程序及其依赖项的方法,并将其封装在一个可移植和隔离的环境中,即容器。这个容器可以在任何支持 Docker 的主机上运行,而不需要额外的配置或依赖项。
在容器化部署 Jenkins 中,可以使用 Docker 镜像来创建一个独立的 Jenkins 容器,该容器包含了所有所需的软件、库和配置文件。这样就可以轻松地在各个环境中部署 Jenkins,保证环境一致性,并且能够快速进行部署和升级操作。
选择容器化部署 Jenkins 的好处主要有以下几点:
-
灵活性:容器化部署可以将 Jenkins 及其依赖项打包到一个独立的容器中,使其更加独立、可移植和易于管理。您可以轻松地在不同的环境中进行部署,例如开发环境、测试环境或生产环境。
-
隔离性:每个 Jenkins 容器都是相互隔离的,这意味着它们之间的运行不会相互干扰。这种隔离性能够提供更高的安全性和稳定性,确保一个容器中出现问题不会影响到其他容器。
-
快速部署和升级:由于容器镜像具备轻量级和可复制的特点,因此可以快速地进行部署和升级。只需创建新的容器实例,并替换旧版本即可完成升级过程,而无需手动配置。
-
环境一致性:通过容器化部署,您可以确保在不同的环境中(开发、测试、生产)运行的 Jenkins 实例是一致的。这有助于减少因环境差异引起的问题,并提供更可靠的构建和部署过程。
容器化部署能够提供更灵活、隔离和快速部署的 Jenkins 环境,更加便捷地管理和使用 Jenkins。
四、容器化部署Jenkins步骤
1、安装 Docker
首先,需要在目标服务器上安装 Docker。
安装步骤见:linux环境安装docker-CSDN博客
2、获取 Jenkins 镜像
从 Docker Hub 上获取 Jenkins 的官方镜像。可以使用以下命令拉取最新版本的 Jenkins 镜像:
docker pull jenkins/jenkins
3、创建并运行容器
创建一个基于 Jenkins 镜像的容器实例,并将其运行起来。
docker run -d -u root -p 8080:8080 -p 50000:50000 -v /home/test:/var/jenkins_home --name my_jenkins jenkins/jenkins
这个命令是用来在 Docker 中运行 Jenkins 镜像,并将容器的端口映射到主机的 8080 和 50000 端口,同时将主机的 /home/test 目录挂载到容器内部的 /var/jenkins_home 目录。容器名称被指定为 my_jenkins。
解释每个选项的含义:
-d
:以后台模式运行容器。-u root
:以 root 用户身份运行容器。-p 8080:8080 -p 50000:50000
:将容器内部的 8080 和 50000 端口映射到主机上相同的端口。-v /home/test:/var/jenkins_home
:将主机上的 /home/test 目录挂载到容器内部的 /var/jenkins_home 目录。--name my_jenkins
:给容器设置一个名称为 my_jenkins。
通过运行该命令,您可以在本地访问 Jenkins Web UI,使用 localhost:8080 访问 Jenkins 主界面,并使用 Docker 容器中 /var/jenkins_home 存储数据。
注:为啥要进行主机目录挂载到容器
假设我们正在使用一个容器来运行 Jenkins 服务器,而在主机上,我们希望将 Jenkins 的数据目录存储在 /home/test
目录下。为了实现这一目的,我们可以将主机上的 /home/test
目录挂载到容器内部的 /var/jenkins_home
目录。
通俗地讲,挂载的作用是将主机上的某个目录与容器内部的某个目录建立连接,以实现数据共享和持久化。在这种情况下,我们选择将 Jenkins 数据目录挂载到主机上的 /home/test
目录,并映射到容器内部的 /var/jenkins_home
目录。
4、访问 Jenkins
在浏览器中访问 http://<服务器IP地址>:8080
来打开 Jenkins Web UI。按照提示完成初始化设置,获取管理员密码并创建管理员账号。
4.1 查看初始密码问题
直接cat 给出的路径 提示找不到文件
因为我们是在docker里部署的,所以需要进到容器中才能访问这个文件,使用如下命令进入容器
docker exec -it my_jenkins /bin/bash
这个命令是使用Docker来在正在运行的名为"my_jenkins"的Jenkins容器中执行一个交互式的bash终端会话。解释如下:
docker exec
: 用于在正在运行的容器中执行命令。-it
: 表示以交互式方式运行命令,并分配一个伪终端(TTY)。my_jenkins
: 指定要执行命令的容器名称或ID。/bin/bash
: 指定要在容器中执行的bash shell。
通过这个命令,您可以进入正在运行的Jenkins容器内部,以便进行一些特定操作或调试。这将打开一个与Jenkins容器关联的bash终端,允许您在容器内部进行命令行操作。
进入到容器内部后再查看初始密码,就可以正常查看到了
密码复制过来
5、配置 Jenkins
5.1 安装插件
点击安装推荐的插件即可,然后等待安装完成
5.2 创建管理员用户
一定牢记账号密码
5.3 实例配置
默认即可
这样就可以使用Jenkins了
五、简单使用Jenkins配置SSH远程操作服务器
进入Jenkins主页面
linux服务器上我们有一个shell文件,文件和内容如下:
我们通过Jenkins的构建任务的方式去执行这个文件
在Jenkins中进行构建时,需要首先SSH登录到一个远程服务器以执行必要的脚本,然后再执行构建。这时,需要安装SSH Plugin,并进行如下配置。
1、安装SSH Plugin
在Jenkins界面,系统管理->管理插件->安装SSH Plugin
说明,SSH Plugin的目的就是支持SSH到远程服务器,然后执行Shell命令。
可以先去已安装里搜索看有没有已经安装SSH Plugin,没有的话去未安装里去搜索安装
2、配置凭据
凭据管理中添加配置凭据
3、SSH相关配置
SSH remote hosts 配置SSH服务器站点,ip,账号,密码以及刚刚创建的凭证,保存
- Hostname: SSH服务器的地址
- Port: 22
- Credentials:选择刚才添加的凭据
4、新建任务
输入任务名称,选择第一个自由风格的项目,确定
构建环境 选择 Execute shell script on remote host using ssh
SSH站点配置默认就是刚刚配置的凭证
然后填写执行前和执行后的Shell脚本
5、构建任务
点击立即构建
6、查看构建结果
点击查看构建历史,点击控制台输出,就可以看到执行结果 SUCCESS
与直接在linux服务器上执行结果一致