Ubuntu Jenkins如何实现远程控制
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 Jenkins
→Configure 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 Jenkins
→Manage Users
→ 用户名 →Configure
→API 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 Jenkins
→Security
,启用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