0


容器化部署 Jenkins,并配置SSH远程操作服务器

一、Jenkins是什么

Jenkins可以简单理解为一个自动化工具,它帮助软件开发团队实现了持续集成和持续交付的过程。持续集成是指将不同开发者的代码合并到主干之前,自动进行构建、测试等操作,以确保代码质量和稳定性。持续交付则是指在每次代码变更后,自动进行打包和部署,以便快速将新功能或修复发布给用户。

使用Jenkins,你可以设置一个任务或流水线,在其中定义一系列需要执行的步骤。比如,当有新的代码提交到版本控制系统(如Git)时,Jenkins会检测到变更,并触发相应的构建任务。它会自动下载最新的代码、编译项目、运行各种测试(单元测试、集成测试等),甚至还能进行静态代码分析来找出潜在问题。

如果构建和测试成功,Jenkins可以进一步将生成的软件包部署到目标服务器上,使其能够被用户访问到。这样做的好处是节省了手动操作的时间和错误风险,并确保了每次更新都经过验证并可靠地发布。

总之,Jenkins是一个强大且灵活的工具,通过自动化执行构建、测试和部署等任务,提高了开发团队的效率和代码质量,同时降低了出错的可能性。

二、常见的部署Jenkins的方法

最常见的部署 Jenkins 的方法有以下几种:

  1. 独立安装:可以从 Jenkins 官网上下载适合你操作系统的安装包,然后按照官方文档的步骤进行安装。这种方式比较灵活,可以在本地服务器或云服务器上进行安装。
  2. 容器化部署:Jenkins 提供了官方的 Docker 镜像,可以通过 Docker 来运行 Jenkins。只需安装好 Docker 环境,在命令行中执行相应指令即可拉取镜像并运行 Jenkins 容器。

三、为什么选择容器化部署

容器化部署通常使用 Docker 镜像来实现。Docker 是一种流行的容器化平台,它提供了一种打包应用程序及其依赖项的方法,并将其封装在一个可移植和隔离的环境中,即容器。这个容器可以在任何支持 Docker 的主机上运行,而不需要额外的配置或依赖项。

在容器化部署 Jenkins 中,可以使用 Docker 镜像来创建一个独立的 Jenkins 容器,该容器包含了所有所需的软件、库和配置文件。这样就可以轻松地在各个环境中部署 Jenkins,保证环境一致性,并且能够快速进行部署和升级操作。

选择容器化部署 Jenkins 的好处主要有以下几点:

  1. 灵活性:容器化部署可以将 Jenkins 及其依赖项打包到一个独立的容器中,使其更加独立、可移植和易于管理。您可以轻松地在不同的环境中进行部署,例如开发环境、测试环境或生产环境。
  2. 隔离性:每个 Jenkins 容器都是相互隔离的,这意味着它们之间的运行不会相互干扰。这种隔离性能够提供更高的安全性和稳定性,确保一个容器中出现问题不会影响到其他容器。
  3. 快速部署和升级:由于容器镜像具备轻量级和可复制的特点,因此可以快速地进行部署和升级。只需创建新的容器实例,并替换旧版本即可完成升级过程,而无需手动配置。
  4. 环境一致性:通过容器化部署,您可以确保在不同的环境中(开发、测试、生产)运行的 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服务器上执行结果一致

标签: jenkins 运维

本文转载自: https://blog.csdn.net/m0_59681797/article/details/135882908
版权归原作者 哆啦田田田 所有, 如有侵权,请联系我们删除。

“容器化部署 Jenkins,并配置SSH远程操作服务器”的评论:

还没有评论