首页主机资讯Jenkins如何在Ubuntu上进行远程控制

Jenkins如何在Ubuntu上进行远程控制

时间2025-11-29 02:39:04发布访客分类主机资讯浏览779
导读:在Ubuntu上远程控制Jenkins的可行方式 远程触发构建与脚本化操作:通过 SSH CLI 或 jenkins-cli.jar 在外部对 Jenkins 发起构建、查询状态、执行命令。 远程部署与文件分发:在 Jenkins 中配置...

在Ubuntu上远程控制Jenkins的可行方式

  • 远程触发构建与脚本化操作:通过 SSH CLIjenkins-cli.jar 在外部对 Jenkins 发起构建、查询状态、执行命令。
  • 远程部署与文件分发:在 Jenkins 中配置 Publish Over SSH,把制品推送到目标机器并执行远程命令。
  • 横向扩展执行节点:把 Ubuntu 机器添加为 Jenkins 代理节点(Agent),由主控节点下发任务到 Agent 执行。

方式一 远程触发与命令行控制

  • 启用并获取 Jenkins SSH 服务端口
    • Manage Jenkins → Configure Global Security 勾选并配置 SSH Server(可固定端口,如 8090;若选 Random,可用命令查看实际端口:curl -Lv http://< JENKINS_URL> :8080/login 2> & 1 | grep ‘X-SSH-Endpoint’)。
  • 为用户添加公钥
    • 进入 Manage Jenkins → Users → 目标用户 → Configure → Public Keys,添加你的 SSH 公钥,用于密钥登录。
  • 通过 SSH 执行命令
    • 基本用法:ssh -l < 用户名> -p < SSH端口> < JENKINS_HOST> < 命令>
    • 常用命令示例:
      • 查看可用命令:ssh -l < 用户名> -p < 端口> < 主机> help
      • 触发构建:ssh -l < 用户名> -p < 端口> < 主机> build < JOB_NAME> -f -v(-f 等待完成,-v 输出详情)
  • 使用 jenkins-cli.jar(HTTP 传输)
    • 下载 CLI:wget http://< JENKINS_URL> /jnlpJars/jenkins-cli.jar
    • 远程执行示例:java -jar jenkins-cli.jar -s http://< JENKINS_URL> / -ssh -user < 用户名> build < JOB_NAME> -f -v
    • 说明:CLI 默认走 HTTP,也可结合 SSH 使用;执行不同命令需对应权限。

方式二 远程部署与文件分发 Publish Over SSH

  • 安装插件
    • Manage Jenkins → Manage Plugins → Available 安装 Publish Over SSH
  • 配置目标机器的 SSH 信息
    • Manage Jenkins → Configure System → Publish over SSH:新增 SSH Server,填写 Hostname、Username,选择 PasswordPrivate Key(推荐密钥)。
  • 在 Job 中使用
    • Freestyle/Pipeline 的构建步骤选择 Send build artifacts over SSH
      • 配置 Source files(要传输的文件/目录)、Remove prefix(去除前缀)、Remote directory(远程目录)
      • Exec command 中写入远程执行的 Shell 命令(如重启服务、解压、备份等)
  • 验证
    • 执行一次构建,检查控制台输出是否出现 Transferred X file(s) 且远程命令返回成功。

方式三 添加 Ubuntu 代理节点进行远程执行

  • Ubuntu 代理节点准备
    • 安装 OpenJDK 11(或项目所需版本):sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 确保 SSH 服务已启用,并允许 Jenkins 主控节点用密钥登录(建议创建专用 jenkins-agent 用户)。
  • Jenkins 主控端添加节点
    • Manage Jenkins → Nodes → New Node,命名并选择 Permanent Agent
    • 配置 # of executors、Remote root directory(如 /var/jenkins)、Labels、Launch method 选 Launch agents via SSH
    • 填写 Host、Credentials(私钥或用户名/密码),保存后启动代理。
  • 验证
    • 节点上线后,可在 Job 的 Restrict where this project can be run 选择对应 Label,任务将在该 Ubuntu 代理上执行。

安全与网络配置要点

  • 防火墙与端口
    • 开放 8080/TCP(Web 管理)、50000/TCP(Agent 通信,如使用内置 JNLP/SSH 代理),以及你为 Jenkins SSH Server 配置的端口(如 8090/TCP):
      • sudo ufw allow 8080/tcp
      • sudo ufw allow 50000/tcp
      • sudo ufw allow 8090/tcp
      • sudo ufw reload
  • 身份与授权
    • 禁用匿名访问,启用 登录用户可操作 或更细粒度的 基于角色的授权策略(Role-based Authorization Strategy)
    • 为 SSH/CLI 操作创建 最小权限 的专用账号,并使用 SSH 密钥而非口令。
  • 连接与密钥细节
    • 使用 SSH 密钥认证时,确保私钥格式正确(包含 -----BEGIN/END RSA PRIVATE KEY-----),并为私钥设置合适权限;
    • 首次连接目标主机需在 Known Hosts 中建立指纹,避免交互阻塞(可在 Jenkins 节点配置中预先接受主机密钥)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Jenkins如何在Ubuntu上进行远程控制
本文地址: https://pptw.com/jishu/759764.html
虚拟机ubuntu如何进行系统监控 Jenkins如何自动化Ubuntu任务

游客 回复需填写必要信息