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

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

一、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

执行命令

dart 复制代码
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

4.启停服务

dart 复制代码
#停止服务
net stop sshd

#启动服务
net start sshd

5.SSH免密登录

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

执行命令

dart 复制代码
ssh-keygen

在当前用户的文件夹下会生成一对秘钥

将文件名 id_ed25519.pub 修改成 authorized_keys

修改 authorized_keys 文件权限,保留system和用户

修改配置文件

文件路径 C:\ProgramData\ssh\sshd config

dart 复制代码
# 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 10

PubkeyAuthentication 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所在目录,执行命令

dart 复制代码
java -jar jenkins.war

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

dart 复制代码
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

dark 复制代码
#下载依赖
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 权限控制(用户只能看指定的项目)

相关推荐
七夜zippoe12 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy64814 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满14 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠14 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90314 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技15 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀16 小时前
Linux环境变量
linux·运维·服务器
zzzsde16 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º17 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~18 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化