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://进入Jenkins初始化页面,输入管理员密码(通过命令获取):
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
完成初始设置(如安装推荐插件、创建管理员用户),确保后续远程操作的权限管理。
4. 远程访问配置
4.1 启用SSH服务(可选但推荐)
若需通过SSH远程管理Jenkins或执行命令,需启用内置SSH Server:
- 进入
Manage Jenkins→Configure Global Security; - 找到
SSH Serversection,设置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://直接访问管理界面。
5. 远程控制方法
5.1 通过Web界面远程操作
最常用的方式是通过浏览器访问Jenkins管理界面,实现任务创建、构建触发、日志查看等功能。所有配置变更均可通过界面完成,无需直接操作服务器。
5.2 使用SSH命令行远程管理
若启用了SSH服务,可通过以下命令远程执行Jenkins命令:
# 测试SSH连接(替换为实际用户名、服务器IP及端口)
ssh -l -p <服务器IP> who-am-i
# 触发指定任务构建(替换为实际任务名)
ssh -l -p <服务器IP> build <任务名> -f -v
通过SSH可实现自动化脚本中的Jenkins任务触发,适合CI/CD流程集成。
5.3 调用Jenkins REST API远程控制
Jenkins提供RESTful API,支持通过HTTP请求远程触发任务、获取构建状态等。常用操作示例:
-
触发无参任务:
curl -X POST 'http://:8080/job/<任务名>/build' --user <用户名>:(API Token可在
Manage Jenkins→Manage Users→ 用户名 →Configure→API Token中生成) -
触发带参数任务:
curl -X POST 'http://:8080/job/<任务名>/buildWithParameters' --user <用户名>:--data PARAM_NAME=value -
获取任务状态:
curl -u <用户名>:'http:// :8080/job/<任务名>/lastBuild/api/json'
5.4 使用Jenkins CLI工具
Jenkins自带CLI工具(jenkins-cli.jar),可通过HTTP或SSH模式远程操作:
- 下载CLI工具:
wget http://:8080/jnlpJars/jenkins-cli.jar - 触发任务构建:
(java -jar jenkins-cli.jar -s http://: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的安全远程控制,满足自动化构建、部署及管理的远程操作需求。
以上就是关于“Ubuntu Jenkins如何实现远程控制”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm