首页主机资讯Ubuntu Jenkins如何实现远程控制

Ubuntu Jenkins如何实现远程控制

时间2025-10-01 12:52:03发布访客分类主机资讯浏览1313
导读:Ubuntu Jenkins实现远程控制的步骤 1. 安装与启动Jenkins 首先在Ubuntu系统上安装Jenkins及依赖的Java环境(Jenkins依赖Java运行): sudo apt update && sud...

Ubuntu Jenkins实现远程控制的步骤

1. 安装与启动Jenkins

首先在Ubuntu系统上安装Jenkins及依赖的Java环境(Jenkins依赖Java运行):

sudo apt update &
    &
     sudo apt install -y openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
sudo apt update &
    &
     sudo apt install -y jenkins

启动Jenkins服务并设置为开机自启:

sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins  # 验证服务状态

2. 开放远程访问端口

为允许外部设备访问Jenkins管理界面及Agent通信,需通过防火墙开放默认端口:

sudo ufw allow 8080/tcp  # Jenkins管理界面端口
sudo ufw allow 50000/tcp # Jenkins Agent通信端口
sudo ufw reload          # 重新加载防火墙规则

3. 初始化Jenkins配置

通过浏览器访问http://< Ubuntu服务器IP> :8080进入Jenkins初始化页面,输入管理员密码(通过命令获取):

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

完成初始设置(如安装推荐插件、创建管理员用户),确保后续远程操作的权限管理。

4. 远程访问配置

4.1 启用SSH服务(可选但推荐)

若需通过SSH远程管理Jenkins或执行命令,需启用内置SSH Server:

  • 进入Manage JenkinsConfigure Global Security
  • 找到SSH Server section,设置Port(如8090,默认随机端口可通过curl -Lv http://< 服务器IP> :8080/login 2> & 1 | grep 'X-SSH-Endpoint'获取);
  • 保存配置后,将远程设备的公钥添加到Jenkins用户的~/.ssh/authorized_keys文件中(实现免密登录)。

4.2 配置HTTP远程访问

默认情况下,Jenkins的HTTP接口已允许远程访问,但需确保防火墙开放8080端口。远程设备可通过http://< Ubuntu服务器IP> :8080直接访问管理界面。

5. 远程控制方法

5.1 通过Web界面远程操作

最常用的方式是通过浏览器访问Jenkins管理界面,实现任务创建、构建触发、日志查看等功能。所有配置变更均可通过界面完成,无需直接操作服务器。

5.2 使用SSH命令行远程管理

若启用了SSH服务,可通过以下命令远程执行Jenkins命令:

# 测试SSH连接(替换为实际用户名、服务器IP及端口)
ssh -l <
    jenkins用户名>
     -p <
    SSH端口>
     <
    服务器IP>
     who-am-i

# 触发指定任务构建(替换为实际任务名)
ssh -l <
    jenkins用户名>
     -p <
    SSH端口>
     <
    服务器IP>
     build <
    任务名>
     -f -v

通过SSH可实现自动化脚本中的Jenkins任务触发,适合CI/CD流程集成。

5.3 调用Jenkins REST API远程控制

Jenkins提供RESTful API,支持通过HTTP请求远程触发任务、获取构建状态等。常用操作示例:

  • 触发无参任务

    curl -X POST 'http://<
        Ubuntu服务器IP>
        :8080/job/<
        任务名>
        /build' --user <
        用户名>
        :<
        API Token>
        
    

    (API Token可在Manage JenkinsManage Users → 用户名 → ConfigureAPI Token中生成)

  • 触发带参数任务

    curl -X POST 'http://<
        Ubuntu服务器IP>
        :8080/job/<
        任务名>
        /buildWithParameters' --user <
        用户名>
        :<
        API Token>
         --data PARAM_NAME=value
    
  • 获取任务状态

    curl -u <
        用户名>
        :<
        API Token>
         'http://<
        Ubuntu服务器IP>
        :8080/job/<
        任务名>
        /lastBuild/api/json'
    

5.4 使用Jenkins CLI工具

Jenkins自带CLI工具(jenkins-cli.jar),可通过HTTP或SSH模式远程操作:

  • 下载CLI工具:
    wget http://<
        Ubuntu服务器IP>
        :8080/jnlpJars/jenkins-cli.jar
    
  • 触发任务构建:
    java -jar jenkins-cli.jar -s http://<
        Ubuntu服务器IP>
        :8080/ build <
        任务名>
         -f
    
    -s指定Jenkins服务器URL,-f表示等待任务完成)

6. 安全加固

  • 禁用匿名访问:进入Manage JenkinsSecurity,启用Enable security,选择Logged-in users can do anything(或更严格的权限模型);
  • 使用强密码与API Token:避免使用默认密码,定期更换API Token;
  • 限制IP访问:通过防火墙(如ufw)或Jenkins的IP Filter功能,仅允许可信IP访问Jenkins;
  • 启用HTTPS:通过反向隧道或Web服务器(如Nginx)配置HTTPS,加密远程通信。

通过以上步骤,可实现Ubuntu Jenkins的安全远程控制,满足自动化构建、部署及管理的远程操作需求。

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


若转载请注明出处: Ubuntu Jenkins如何实现远程控制
本文地址: https://pptw.com/jishu/715736.html
Linux防火墙怎样实现入侵检测 Ubuntu Jenkins如何定制脚本

游客 回复需填写必要信息