【OpenSSH+Jenkins搭建项目自动化部署】

OpenSSH+Jenkins搭建项目自动化部署

  • 一、Windows安装OpenSSH
    • 1.下载
    • 2.解压
    • 3.安装
    • 4.启停服务
    • 5.SSH免密登录
  • 二、Jenkins安装
    • 1.下载
    • 2.安装启动
    • 3.登录
  • 三、项目自动化部署
    • 1.SSH配置
    • 2.项目配置
    • 3.权限控制

一、Windows安装OpenSSH

1.下载

https://github.com/PowerShell/Win32-0penSSH/releases
下载最新的 OpenSSH安装包,如:openSSH-Win64.zip

2.解压

将压缩包解压到 C:\Program Files\OpenSSH

3.安装

管理员运行cmd 进入目录C:\Program Files\OpenSSH
执行命令

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

4.启停服务

#停止服务
net stop sshd#启动服务
net start sshd

5.SSH免密登录

管理员运行cmd 进入目录C:\Program Files\OpenSSH
执行命令

ssh-keygen

生成密钥对
在当前用户的文件夹下会生成一对秘钥
在这里插入图片描述
将文件名 id_ed25519.pub 修改成 authorized_keys

修改 authorized_keys 文件权限,保留system和用户
在这里插入图片描述
修改配置文件
文件路径 C:\ProgramData\ssh\sshd config

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key# Ciphers and keying
#RekeyLimit default none# Logging
#SyslogFacility AUTH
#LogLevel INFO# Authentication:#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10PubkeyAuthentication yes
PubkeyAcceptedKeyTypes  +ssh-rsa# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile	.ssh/authorized_keys#AuthorizedPrincipalsFile none# For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no# GSSAPI options
#GSSAPIAuthentication no#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none# no default banner path
#Banner none# override default of no subsystems
Subsystem	sftp	sftp-server.exe# Example of overriding settings on a per-user basis
#Match User anoncvs
#	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

防火墙打开 22 端口,并将生成的秘钥对里面的私钥拷贝到客户端中(更换秘钥后需要重启SSH服务),路径同服务端。

二、Jenkins安装

1.下载

Jenkins由Java语言编写而成,安装包即是一个war包。因此,Jenkins的运行启动依赖于Java环境,同时,它是免安装的。
https://www.jenkins.io/download/

2.安装启动

命令行:切换到jenkins.war所在目录,执行命令

java -jar jenkins.war

如果出现端口冲突相关报错,则可以修改jenkins的端口

java -jar jenkins.war --httpPort=8088

出现以下信息表示启动成功
在这里插入图片描述

3.登录

根据自己使用的端口,在浏览器界面打开,可以加载出jenkins的登录界面,如果没有指定端口,默认是8080端口,打开后页面如下,需要初始化密码。
在这里插入图片描述
进入到指定的用户文件夹中

C:\Users\XXX\.jenkins\secrets\initialAdminPassword

打开这个文件,里面会有一串密码,把它复制出来,回到解锁Jenkins页面。

输入密码后点击继续,这时候来到了新手入门界面,自定义Jenkins
在这里插入图片描述
点击安装之后,会让你创建第一个管理员用户,这里可以根据你的实际需求来设置,也可以点击使用admin账户继续。
在这里插入图片描述
点击保存并完成后,我们的Jenkins就已经准备就绪了,可以愉快地使用了。

三、项目自动化部署

1.SSH配置

jenkins安装SSH插件:Manage Jenkins > Plugins
在这里插入图片描述
插件装好后重启jenkins , 进入 Manage Jenkins > System
找到 Publish over SSH
在这里插入图片描述
SSH Servers里面配置SSH的服务端信息,包括自定义的服务器名称服务器IP地址服务器登录用户名、高级选项中的SSH客户端私钥(跟本机SSH公钥成对生成的秘钥中的私钥);配置完成后可以点击右下角的 “Test Configuration” 测试是否能够连接成功。
在这里插入图片描述

2.项目配置

新建Item,选择构建一个自由风格的软件项目 Freestyle project
在这里插入图片描述
源码管理,添加git仓库信息以及用户账号密码信息。
在这里插入图片描述
Build Steps 构建步骤配置
我们是windows服务器环境,所以选择windows相关的执行命令Execute Windows batch command

#下载依赖
npm i#打包
npm run build:pro#进入项目文件夹
cd C:\ProgramData\Jenkins\.jenkins\workspace\EnergyAllInOne.client.beta#删除原有的压缩包
del ZTEnergyAllInOneWeb.zip#构建新的压缩包
zip -r ZTEnergyAllInOneWeb.zip ZTEnergyAllInOneWeb

在这里插入图片描述
图中是前端项目的打包相关命令,其他项目可以自行配置。

构建后步骤配置 选择执行命令类型Send build artifacts over SSH
配置SSH Server 服务器选择(SSH配置中配置的)
Transfer Set
在这里插入图片描述
信息填写完成后保存即可回到首页进行构建。
在这里插入图片描述
如果构建失败,可以点击构建历史进入查看具体的构建信息
在这里插入图片描述

3.权限控制

参考博客:jenkins 权限控制(用户只能看指定的项目)

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

常见的排序算法整理

1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻元素,则交换两者位置,同时将较大元素作为下一个比较的基准元素,继续将该元素与其相邻的元素进行比…

用于扫描机密的开源解决方案

TruffleHog 最初是在 2016 年独立创作的一个研究工具。当发布它时,没有工具扫描 Git 修订历史记录以获取秘密。我的预感是旧版本的代码中隐藏着很多秘密,但没有工具可以查找它们。 我的预感是对的。该工具迅速流行并变得非常流行。如今,它在…

数据库管理-第153期 Oracle Vector DB AI-05(20240221)

数据库管理153期 2024-02-21 数据库管理-第153期 Oracle Vector DB & AI-05(20240221)1 Oracle Vector的其他特性示例1:示例2 2 简单使用Oracle Vector环境创建包含Vector数据类型的表插入向量数据 总结 数据库管理-第153期 Oracle Vecto…

启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000

启动node服务报错: 解决方案: 将监听端口改成3000或者其他 修改后结果: 参考原文: Error: listen EACCES: permission denied_error when starting dev server: error: listen eacc-CSDN博客

板块一 Servlet编程:第八节 文件上传下载操作 来自【汤米尼克的JavaEE全套教程专栏】

板块一 Servlet编程:第八节 文件的上传下载操作 一、文件上传(1)前端内容(2)后端内容 二、文件下载(1)前端的超链接下载(2)后端下载 在之前的内容中我们终于结束了Servle…

【云原生】Docker 安全与CA证书生成

目录 容器的安全行问题 Docker 容器与虚拟机的区别 Docker 存在的安全问题 1.Docker 自身漏洞 2.Docker 源码问题 Docker 架构缺陷与安全机制 1. 容器之间的局域网攻击 2. DDoS 攻击耗尽资源 3. 有漏洞的系统调用 4. 共享root用户权限 Docker 安全基线标准 1. 内…

sympy奇异函数

文章目录 简介SingularityFunctionrewrite 简介 奇异函数是一类不连续函数&#xff0c;可用麦考利括号表示为 f ( t ) < t − t 0 > n f(t)\lt t-t_0\gt^n f(t)<t−t0​>n 当 n < 0 n\lt 0 n<0时&#xff0c;记 N − n − 1 ≥ 0 N-n-1\geq0 N−n−1≥0&…

【云原生】持续集成持续部署

本文主要总结CI/CD的流程&#xff0c;不会详细介绍每个知识点。 啥是集成&#xff1f;啥是部署&#xff1f; 集成&#xff0c;就是把应用程序、相关环境、配置全局打包放在一个容器中的操作。部署就不解释了。 CI/CD 如果是自己手动部署的话&#xff0c;流程应该是这样的&am…

Android 沉浸式状态栏

过时的API //设置默认隐藏虚拟按键&#xff0c;虚拟按键显示后为半透明protected open fun hideNavigationBarAndFullScreen() {val flags: Int// This work only for android 4.4flags if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {// This work only for a…

【算法与数据结构】797、LeetCode所有可能的路径

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;有向无环图&#xff08;Directed acyclic graph, DAG&#xff09;是图论中的一个概念&#xff0c;它指…

SQL注入之DNSLog外带注入

一、认识&#xff1a; 什么是dnslog呢&#xff1f; DNS就是域名解析服务&#xff0c;把一个域名转换成对应的IP地址&#xff0c;转换完成之后&#xff0c;DNS服务器就会有一个日志记录本次转换的时间、域名、域名对应的ip、请求方的一些信息&#xff0c;这个日志就叫DNSLog。…

2.21作业

使用多进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;父进程回收子进程的资源。 程序代码&#xff1a; #include <myhead.h>typedef struct {int start;//拷贝的起始位置int end;//拷贝的结束位置int source_fd;//被拷…

什么是正定矩阵?Positive Definite Matrices (done)

正定矩阵的定义&#xff1a;https://baike.baidu.com/item/%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/11030459 正定矩阵的作用、验证视频&#xff1a;https://www.bilibili.com/video/BV1Ag411M76G/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c…

详解 IT/OT 融合的五层架构(从PLC/SCADA到MES/ERP)

作为一个电气自动化的从业者&#xff0c;有必要搞懂下面术语的意思。 IT&#xff1a;Information Technology的缩写&#xff0c;指信息技术&#xff1b; OT&#xff1a;Operational Technology的缩写&#xff0c;指操作层面的技术&#xff0c;比如运营技术&#xff1b;CT&…

5、电源管理入门之 arm-scmi和mailbox核间通信

目录 1. 整体架构介绍 2 Linux中reset模块 2.1 Reset consumer 2.2 Reset provider 3. Linux SCMI reset通信 3.1 SCMI reset协议初始化 3.2 SCMI reset消息收发 4. SCP中reset 4.1 固件新增module 4.2 scmi_reset_domain初始化 4.3 scmi_reset_domain消息处理 4.3…

JavaScript数据类型学习脑图

字符串&#xff08;String&#xff09;、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空&#xff08;Null&#xff09;、未定义&#xff08;Undefined&#xff09;

跨境电商本土化运营:深度融合本地市场,提升用户体验与市场份额

随着全球经济的不断发展&#xff0c;跨境电商在国际贸易中扮演着越来越重要的角色。然而&#xff0c;单一地面对全球市场可能并不足以满足用户的多样化需求&#xff0c;因此&#xff0c;跨境电商需要与本地市场深度融合&#xff0c;实现本土化运营。本文Nox聚星将和大家探讨跨境…

Linux CAfile 文件下的/ca-bundle.crt怎么生成的

在配置Linux Nginx SSL证书后&#xff0c;通过服务器访问域名时发现&#xff0c;服务器返回的CA证书是&#xff1a;/etc/pki/tls/certs/ca-bundle.crt 正式我在使用Spring Native安装了Docker自动生成的&#xff0c;而且开启了Docker的自启动&#xff0c;如果你和我一样&#x…

单调栈总结以及Leetcode案例解读与复盘

单调栈总结以及Leetcode案例解读与复盘 一、单调栈是什么&#xff1f; 单调栈&#xff08;monotonous stack&#xff09;是指栈的内部从栈底到栈顶满足单调性的栈结构。 二、如何维护单调性 新元素入栈时&#xff0c;会与栈顶元素进行比较&#xff0c;使得栈始终保持单调性…

Nginx原理及服务安装

目录 引言 一、Nginx简介 二、Nginx工作场景 &#xff08;一&#xff09;Nginx的工作场景 &#xff08;二&#xff09;影响用户体验的因素 三、IO模型 &#xff08;一&#xff09;零拷贝技术 &#xff08;二&#xff09;IO模型的相关概念 &#xff08;三&#xff09;n…