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

目录

一、Jenkins是什么

二、常见的部署Jenkins的方法

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

四、容器化部署Jenkins步骤

1、安装 Docker

2、获取 Jenkins 镜像

3、创建并运行容器

4、访问 Jenkins

4.1 查看初始密码问题

5、配置 Jenkins

5.1 安装插件

5.2 创建管理员用户

5.3 实例配置

五、简单使用Jenkins配置SSH远程操作服务器

1、安装SSH Plugin

2、配置凭据

3、SSH相关配置

4、新建任务

5、构建任务

6、查看构建结果


一、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服务器上执行结果一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一维数组的学习

前言 数组&#xff08;Array&#xff09;是有序的元素序列。若将有限个类型相同的变量的集合命名&#xff0c;那么这个名称为数组名。组成数组的各个变量称为数组的分量&#xff0c;也称为数组的元素&#xff0c;有时也称为下标变量。用于区分数组的各个元素的数字编号称…

Python之FastAPI框架~浅谈sqlalchemy与tortoise

1.前言 一直想理解清楚FastAPI框架的异步框架tortoise&#xff0c;据说这个框架使用起来能够更好地与FastAPI异步框架继承&#xff0c;但是FastAPI框架官方介绍的是sqlalchemy框架&#xff0c;它是同步的&#xff0c;是不支持await的。所以跟数据库进行交互时候&#xff0c;使…

Java项目实战--瑞吉外卖DAY03

目录 P22新增员工_编写全局异常处理器 P23新增员工_完善全局异常处理器并测试 p24新增员工_小结 P27员工分页查询_代码开发1 P28员工分页查询_代码开发2 P22新增员工_编写全局异常处理器 在COMMON新增全局异常捕获的类&#xff0c;其实就是代理我们这些controlle。通过aop把…

spring+drools

引入依赖 <dependency><groupId>com.github.hongwen1993</groupId><artifactId>fast-drools-spring-boot-starter</artifactId><version>8.0.8</version><scope>compile</scope> </dependency>yml配置 spring: …

基于SSM+Shiro+Druid实现的企业资产后台管理系统

系统介绍 系统演示 关注【全栈小白】视频号查看演示视频 随着企业的发展&#xff0c;很多中小企业的规模越来越大&#xff0c;需要管理资产也越来越多&#xff0c;比如显示器&#xff0c;主机&#xff0c;打印机&#xff0c;传真机&#xff0c;复印机&#xff0c;电话&#…

C++提高编程——STL:list容器、set容器和map容器

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

洛谷p1036选数

[NOIP2002 普及组] 选数 题目描述 已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1​,x2​,⋯,xn​&#xff0c;以及 1 1 1 个整数 k k k&#xff08; k < n k<n k<n&#xff09;。从 n n n 个整数中任选 k k k 个整数相加&#xff0c;可分别得…

SAP-PP: BOM选择标识不存在

在MM03 中选择生产版本无法打开 原因是未维护 BOM选择标识 配置路径&#xff1a;生产→物料需求计划→工厂参数→执行工厂参数总体维护→BOM/工艺路线选择 T-CD: OPPQ

flutter极光推送配置厂商通道(华为)笔记--进行中

一、基础集成按照下面官方文档进行 厂商通道相关参数申请教程 集成厂商 集成指南 官方文档&#xff1a;厂商通道回执配置指南 注意&#xff1a;不同厂商对app上架的要求不同&#xff0c;华为、荣耀 对app上架没有硬性要求 遇到问题 1、引入apply plugin: com.huawei.agconn…

Jenkins部署及应用

一. 简介 二. 下载地址源&#xff1a; …

Docker部署Stable-Diffusion-webui

前排提示&#xff1a;如果不想折腾&#xff0c;可直接跳到最后获取封装好的容器&#xff0c;一键运行 :D 前言 乘上AI生成的快车&#xff0c;一同看看沿途的风景。 启一个miniconda容器 docker run -itd -v 宿主机内SD项目路径:/tmp --gpus all --ipc host -p 7860:7860 con…

机器学习---可能近似正确(PAC)、出错界限框架

1. 计算学习理论概述 从理论上刻画了若干类型的机器学习问题中的困难和若干类型的机器学习算法的能力 这个理论要回答的问题是&#xff1a; 在什么样的条件下成功的学习是可能的&#xff1f; 在什么条件下某个特定的学习算法可保证成功运行&#xff1f; 这里考虑两种框架&…

《SPSS统计学基础与实证研究应用精解》视频讲解:数据结构重组(数据重组方式的选择、由变量组到样本观测值组的重组、由样本观测值组到变量组的重组)

《SPSS统计学基础与实证研究应用精解》4.11 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.11节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。本书旨在手把手教会…

2024年阿里云幻兽帕鲁Palworld游戏服务器优惠价格表

自建幻兽帕鲁服务器租用价格表&#xff0c;2024阿里云推出专属幻兽帕鲁Palworld游戏优惠服务器&#xff0c;配置分为4核16G和4核32G服务器&#xff0c;4核16G配置32.25元/1个月、10M带宽66.30元/1个月、4核32G配置113.24元/1个月&#xff0c;4核32G配置3个月339.72元。ECS云服务…

求x大于等于n的最小因子-codeforce round 921 div2 B

CF的round921div2的B题 题目简介与分析 有一堆废话我就不提了&#xff0c;直奔重点&#xff0c;然后是他问你x分成n个数相加的形式&#xff0c;然后要求这n个数的最大公因数最大&#xff0c;并问你最大时这个最大公因数是多少。 我的思路 我把x看成很多个质因数相乘得到&…

gdb调试std::list和std::vector等容器的方法

GDB中print方法并不能直接打印STL容器中保存的变量&#xff0c;其实只要http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt这个文件保存为~/.gdbinit 就可以使用它提供的方法方便调试容器 指定启动文件&#xff1a;~/.gdbinit&#xff0c;下面的方法任选其一。…

2024年华为OD机试真题-围棋的气-Python-OD统一考试(C卷)

题目描述: 围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19x19=361个交点,对弈双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。 “气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知: …

Debian 12.x apt方式快速部署LNMP

一.前期准备 1.建议服务器以最小化方式安装Debian 12。 何为Debian 12最小化安装呢&#xff1f;就是在安装Debian 12选择软件时只勾选SSH server和standard system utilities即可。另外&#xff0c;在分区时建议分一个/data分区&#xff0c;为服务器的数据目录。 2.配置源 #cd …

ffmpeg4.0.4 api-threadmessage-test.c

使用FFmpeg库模拟消息传递的C程序。它创建了一个消息队列以及多个发送者和接收者线程&#xff0c;这些线程在队列中推送和弹出消息。 程序的主要功能包括&#xff1a; 定义了发送者和接收者数据的结构&#xff0c;以及消息的结构。 free_frame函数用于释放消息帧的内存。 sen…

《动手学深度学习(PyTorch版)》笔记4.9

Chapter4 Multilayer Perceptron 4.9 Environment and Distribution Shift 4.9.1 Types of Distribution Shift 在一个经典的情景中&#xff0c;假设训练数据是从某个分布 p S ( x , y ) p_S(\mathbf{x},y) pS​(x,y)中采样的&#xff0c;但是测试数据将包含从不同分布 p T …