当前位置: 首页 > news >正文

网站建设的主要功能有哪些宁波seo关键词如何优化

网站建设的主要功能有哪些,宁波seo关键词如何优化,网站每年要多少钱,百度网页怎么做随着软件开发节奏的加快#xff0c;持续集成#xff08;CI#xff09;和持续部署#xff08;CD#xff09;已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器#xff0c;为开发者提供了一个强大的平台来实施这些实践。然而…随着软件开发节奏的加快持续集成CI和持续部署CD已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器为开发者提供了一个强大的平台来实施这些实践。然而在实际操作中尤其是在需要跨越不同操作系统边界时——例如将基于Linux的构建服务器上的Java应用程序部署到Windows Server环境中——可能会遇到一系列挑战。本文聚焦于这一特定场景详细介绍如何使用Jenkins来创建和管理Jobs以便从GitLab仓库中拉取最新的Java项目源码经过自动化的构建过程最终将其部署到Windows Server上运行。 jenkins 部署 : [笔记] Jenkins 安装与配置全攻略Ubuntu 从零开始搭建持续集成环境 一. 安装 jenkins 插件 1. GitLab 相关插件 用于与 GitLab 仓库集成支持拉取代码、触发构建等。 GitLab 提供 GitLab 与 Jenkins 的集成支持 GitLab Webhook、MR 触发构建等功能。 Git Plugin 用于从 Git 仓库包括 GitLab拉取代码。 GitLab API 提供与 GitLab API 的交互支持可选根据需求安装。 2. 构建工具插件 用于构建 Java 项目。 Maven Integration Plugin 如果使用 Maven 构建 Java 项目需要安装此插件。 Gradle Plugin 如果使用 Gradle 构建 Java 项目需要安装此插件。 3. SSH 相关插件 用于通过 SSH 连接到 Windows Server 2019 并部署应用。 SSH Build Agents Plugin 允许 Jenkins 使用 SSH 密钥进行身份验证。 Publish Over SSH 支持通过 SSH 将构建产物传输到远程服务器Windows Server 2019。 二. 全局工具配置 1. Maven 配置 2. Maven 安装 三. 配置代码仓库 我的代码仓库是使用的 极狐 gitlab 1. 获取 gitlab 的访问令牌(Access tokens) 期间 read_repository 必须勾选 仅需拉取代码 如果 Jenkins 只需要从 GitLab 拉取代码例如通过 Git-over-HTTP 或 Repository Files API那么只需授予 read_repository 权限即可。需要与 GitLab API 交互 如果 Jenkins 需要调用 GitLab API 来进行其他操作比如获取项目详细信息、触发构建、管理合并请求等你将需要授予 read_api 权限。这包括对所有群组和项目的读访问权、容器镜像库和软件包库的访问权等。高级集成 在某些情况下你可能还需要更多的权限例如推送代码、创建标签或分支等。这些情况通常需要更高的权限级别如 write_repository 或自定义权限设置。 2. 配置 jenkins 凭证 进入凭证管理 配置全局凭证 添加凭证 选择类型 Username with password 三. (win服务器使用) Windows Server 2019 启动 OpenSSH Server 1. 安装 OpenSSH Server # 以管理员身份运行 PowerShell# 安装 OpenSSH Server Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0# 设置自动启动 Set-Service sshd -StartupType Automatic Set-Service ssh-agent -StartupType Automatic# 启动 SSH 服务 Start-Service sshd Start-Service ssh-agent# 确认服务状态 Get-Service sshd 2. 配置 SSH 服务 编辑 C:\ProgramData\ssh\sshd_config 文件添加或修改以下内容 # 编辑 C:\ProgramData\ssh\sshd_config 文件添加或修改以下内容 PasswordAuthentication yes PermitRootLogin yes Subsystem powershell c:/progra~1/powershell/7/pwsh.exe KexAlgorithms diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256 HostKeyAlgorithms ssh-rsa,rsa-sha2-512,rsa-sha2-2563. 重启 SSH 服务 Restart-Service sshd4. 配置防火墙 # 添加防火墙规则 New-NetFirewallRule -Name sshd -DisplayName OpenSSH Server (sshd) -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22四. 配置 SSH Servers 1. 使用账号密码 注意 : windows 服务器的配置 Remote Directory 只能使用基础目录 , 不可修改 2. 使用秘钥 a. 生成SSH密钥对 打开终端或命令提示符。运行以下命令生成SSH密钥对 # 生成 RSA 密钥对 ssh-keygen -t rsa -b 4096 -C jenkinsexample.com# 密钥默认保存在 # - 私钥C:\Users\jenkins\.ssh\id_rsa # - 公钥C:\Users\jenkins\.ssh\id_rsa.pubssh-keygen : 用于生成、管理和转换认证密钥对的命令行工具主要用于SSH协议。通常位于 /usr/bin/ssh-keygen 或 /usr/local/bin/ssh-keygen。-t rsa -t 指定要生成的密钥类型。rsa 表示生成RSA类型的密钥。RSA是一种非对称加密算法广泛用于SSH连接。其他常见的密钥类型包括 dsa较少使用、ecdsa 和 ed25519。-b 4096 -b 指定密钥的位数。4096 表示生成的RSA密钥长度为4096位。默认情况下ssh-keygen 生成的RSA密钥长度为2048位。增加密钥长度可以提高安全性但也会稍微增加计算开销。4096位是一个常用的、安全的选择。-C your_emailexample.com : -C 添加一个注释comment到生成的公钥中。your_emailexample.com 是你提供的注释内容通常是你的电子邮件地址。 按照提示操作可以接受默认路径和文件名通常是 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub。 Enter passphrase (empty for no passphrase):系统会提示你输入一个密码短语passphrase。如果你设置了密码短语每次使用私钥时都需要输入它。这增加了安全性但也增加了使用的复杂性。(如果你不希望设置密码短语直接按回车键即可。) b. 将公钥复制到 Windows Server 将生成的公钥文件通常是 ~/.ssh/id_rsa.pub的内容复制到剪贴板。将公钥内容添加到 authorized_keys 文件 # 创建 authorized_keys 文件并添加公钥内容 # 将 Jenkins 服务器上 id_rsa.pub 的内容复制到这个文件 Add-Content -Path C:\Users\Administrator\.ssh\authorized_keys -Value ssh-rsa AAAA...-Value 是你的 ~/.ssh/id_rsa.pub 的内容 c. 编辑 C:\ProgramData\ssh\sshd_config # 启用公钥认证 PubkeyAuthentication yes# 指定授权密钥文件位置 AuthorizedKeysFile .ssh/authorized_keys# 可选禁用密码认证更安全 PasswordAuthentication no d. 设置文件权限 # 设置 .ssh 目录的权限 icacls C:\Users\Administrator\.ssh /inheritance:r icacls C:\Users\Administrator\.ssh /grant SYSTEM:(F) icacls C:\Users\Administrator\.ssh /grant ADMINISTRATORS:(F) icacls C:\Users\Administrator\.ssh /grant Administrator:(F)# 设置 authorized_keys 文件的权限 icacls C:\Users\Administrator\.ssh\authorized_keys /inheritance:r icacls C:\Users\Administrator\.ssh\authorized_keys /grant SYSTEM:(F) icacls C:\Users\Administrator\.ssh\authorized_keys /grant ADMINISTRATORS:(F) icacls C:\Users\Administrator\.ssh\authorized_keys /grant Administrator:(F)e. 重启 SSH 服务 # 重启 SSH 服务 Restart-Service sshdf. 在 Jenkins 中配置 SSH Publisher path to key 与 key 只需要配置一个就可以 3. 测试连接 四. 编写 jobs 1. 配置源码管理 2. 配置 构建完成后 上传产物与运行脚本 注意: 可以选择 构建环境中的 Send files or execute commands over SSH after the build runs 也可以选择 构建后操作中的Send build artifacts over SSH 。Remote directory : 我使用的是环境参数在 Jenkins 中使用环境参数使用 必须是 ${FOLDER_NAME} 的格式。windows 服务器 运行脚本的话只能运行服务器上的脚本。 Exec command : ${DEPLOY_BAT_PATH} ${FOLDER_NAME} ${DEPLOY_LOG_PATH} ${BASE_SOURCE_PATH} ${BASE_TARGET_PATH} ${JAR_NAME}3. 配置环境变量 在 Jenkins 中使用环境参数使用 必须是 ${FOLDER_NAME} 的格式。 name : FOLDER_NAME , defaultValue : test , description : 部署文件夹名称name : DEPLOY_LOG_PATH , defaultValue : E:\deploy.log , description : 日志文件路径name : BASE_SOURCE_PATH , defaultValue : C:\Users\Administrator , description : 源代码基础路径name : BASE_TARGET_PATH , defaultValue : E:\project , description : 目标基础路径name : JAR_NAME , defaultValue : central-server.jar , description : JAR文件名称name : DEPLOY_BAT_PATH , defaultValue : E:\deploy.bat , description : 部署脚本路径 4. 编写脚本 部分内容声明 # 因为一些要求 要生成启动的脚本 java -jar 换成 javaw -jar 也是一样的 echo Creating start script... %DEPLOY_LOG% (echo echo offecho cd /d %TARGET_PATH%echo java -jar %JAR_NAME% ^ %TARGET_PATH%\app.log 2^^1 ) %TARGET_PATH%\start.bat# 这里因为...用的盗版系统环境变量被魔改过start不会起作用.所以用 call 了如果可以用start用startcall会等待。导致Jenkins超时 if exist %TARGET_PATH%\%JAR_NAME% (:: 启动应用cd /d %TARGET_PATH%call start.batecho Application started successfully %DEPLOY_LOG% ) else (echo WARNING: JAR file not found after deployment %DEPLOY_LOG% )完整脚本 echo off setlocal EnableDelayedExpansion:: 检查参数 if %~1 (echo Error: folder_name parameter is missinggoto :usage ) if %~2 (echo Error: deploy_log_path parameter is missinggoto :usage ) if %~3 (echo Error: base_source_path parameter is missinggoto :usage ) if %~4 (echo Error: base_target_path parameter is missinggoto :usage ) if %~5 (echo Error: jar_name parameter is missinggoto :usage ):: 检查并创建日志文件目录 for %%I in (%~2) do set LOG_DIR%%~dpI if not exist !LOG_DIR! (echo Creating log directory: !LOG_DIR!md !LOG_DIR! 2nulif errorlevel 1 (echo Error: Failed to create log directorygoto :usage) ):: 设置日志文件和基础变量 set FOLDER_NAME%~1 set DEPLOY_LOG%~2 set SOURCE_PATH%~3\%FOLDER_NAME% set TARGET_PATH%~4\%FOLDER_NAME% set JAR_NAME%~5:: 记录部署开始 echo %date% %time% - Starting Jenkins deployment %DEPLOY_LOG% echo Configuration: %DEPLOY_LOG% echo SOURCE_PATH%SOURCE_PATH% %DEPLOY_LOG% echo TARGET_PATH%TARGET_PATH% %DEPLOY_LOG% echo JAR_NAME%JAR_NAME% %DEPLOY_LOG%:: 停止现有进程 echo %date% %time% - Attempting to stop existing process... %DEPLOY_LOG% taskkill /F /IM java.exe /T %DEPLOY_LOG% 21 || echo No Java processes found %DEPLOY_LOG% echo %date% %time% - Process stop attempt completed %DEPLOY_LOG%:: 等待进程完全停止 echo %date% %time% - Waiting for processes to stop... %DEPLOY_LOG% ping -n 11 127.0.0.1 nul echo %date% %time% - Wait completed %DEPLOY_LOG%:: 清理目标目录 - 即使失败也继续 echo Cleaning target directory... %DEPLOY_LOG% if exist %TARGET_PATH% (rd /s /q %TARGET_PATH% %DEPLOY_LOG% 21 ):: 创建必要目录 md %~4 2nul md %TARGET_PATH% 2nul:: 复制文件 echo Moving files... %DEPLOY_LOG% robocopy %SOURCE_PATH% %TARGET_PATH% /E /MOVE /R:1 /W:1 %DEPLOY_LOG% 21:: 创建启动脚本 echo Creating start script... %DEPLOY_LOG% (echo echo offecho cd /d %TARGET_PATH%echo java -jar %JAR_NAME% ^ %TARGET_PATH%\app.log 2^^1 ) %TARGET_PATH%\start.bat:: 验证部署 if exist %TARGET_PATH%\%JAR_NAME% (:: 启动应用cd /d %TARGET_PATH%call start.batecho Application started successfully %DEPLOY_LOG% ) else (echo WARNING: JAR file not found after deployment %DEPLOY_LOG% )echo Deployment completed at %date% %time% %DEPLOY_LOG%endlocal exit /b 0:usage echo Usage: deploy.bat [folder_name] [deploy_log_path] [base_source_path] [base_target_path] [jar_name] echo Example: %%FOLDER_NAME%% %%DEPLOY_LOG_PATH%% %%BASE_SOURCE_PATH%% %%BASE_TARGET_PATH%% %%JAR_NAME%% exit /b 1五. 运行 jobs
http://www.yingshimen.cn/news/24768/

相关文章:

  • 上海营销型网站广告模板图片
  • wordpress新站5天收录wordpress登陆失败
  • 万州做网站多少钱建设一个购物网站需要什么意思
  • 全面的网站制作wordpress 前台刷新
  • e盘网站建设旅行社网站建设策划书
  • 犀牛网站建设公司如何把做的网站放到百度上
  • 做网站完整过程三亚网站优化
  • 石家庄网站关键词推广广告软文外链平台
  • 企业网站的建设原则是什么?百度提问在线回答问题
  • 石家庄网站建设工作室wordpress 最新教程视频
  • 深圳做棋牌网站建设哪家服务好兼职工厂网站建设
  • 网站宣传的劣势山西钢建公司简介
  • 我想做个网站怎么弄wordpress内网响应慢
  • 深圳网站设计三把火rails 网站开发
  • 温州建站费用自己做网站可行吗
  • 西安高端网站制作百度推广开户流程
  • 南昌汉邦网站建设如何做网站图片切换
  • 常州新北区建设局网站源码出售平台
  • 怎么快速提高网站权重新开网站做内贸业务员好做
  • 建设银行网站服务功能链接搜索引擎
  • 网站布局优化开发网站建设设计公司
  • 温州市住房和城乡建设厅网站湖南建设c证查询网站
  • 高端网站建设天软科技网站个人中心模板
  • 广西新农村建设工作专题网站各大网站平台发布信息
  • led网站免费模板汕头seo网站建设
  • 手机免费在线搭建网站成都 直播 网站建设
  • 网站建设有什么好的介绍网址导航源码
  • 网站项目需要什么网站建设系统教程
  • 1做网站的公司wordpress主题开发
  • 北京城市副中心投资建设公司网站前端开发好学吗