Ubuntu Jenkins远程操作配置指南
要远程访问Ubuntu服务器上的Jenkins,需完成以下基础配置:
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 - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list' sudo apt update && sudo apt install -y jenkins sudo systemctl enable jenkins sudo systemctl start jenkins sudo systemctl status jenkins # 验证服务状态 ufw开放Jenkins管理界面(8080)和Agent通信(50000)端口:sudo ufw allow 8080/tcp sudo ufw allow 50000/tcp sudo ufw reload sudo cat /var/lib/jenkins/secrets/initialAdminPassword 浏览器访问http://<Ubuntu服务器IP>:8080,输入初始密码完成解锁。后续建议创建专用管理员账户(而非使用默认admin)。Manage Jenkins > Configure Global Security,勾选“Enable security”。Jenkins提供两种主流远程命令行方式:SSH接口和CLI jar工具。
Manage Jenkins > Configure Global Security,找到“SSH Server” section,设置监听端口(如8090,默认随机),保存配置。~/.ssh/id_rsa.pub)添加到Jenkins对应用户的“Public Keys”列表(Manage Jenkins > Manage Users > 选择用户 > Configure)。ssh -l <用户名> -p <端口> <Jenkins服务器IP> <Jenkins命令>。例如:ssh -l jack -p 8090 192.168.1.100 who-am-i # 验证身份 ssh -l jack -p 8090 192.168.1.100 build test -f -v # 触发名为test的job wget http://<Jenkins服务器IP>:8080/jnlpJars/jenkins-cli.jar java -jar jenkins-cli.jar -s http://<Jenkins服务器IP>:8080 -auth jack:123456 build test Manage Jenkins > Manage Users > 选择用户 > Configure > API Token,生成新token。java -jar jenkins-cli.jar -s http://<Jenkins服务器IP>:8080 -auth jack:11d5ca0f9ee2dac8c47492b3e6b71c82cd build test ~/.jenkins-token),通过@引用:echo jack:11d5ca0f9ee2dac8c47492b3e6b71c82cd > ~/.jenkins-token java -jar jenkins-cli.jar -s http://<Jenkins服务器IP>:8080 -auth @~/.jenkins-token build test export JENKINS_USER_ID=jack export JENKINS_API_TOKEN=11d5ca0f9ee2dac8c47492b3e6b71c82cd java -jar jenkins-cli.jar -s http://<Jenkins服务器IP>:8080 -auth $JENKINS_USER_ID:$JENKINS_API_TOKEN build test 若需远程执行Shell脚本或传输文件到其他主机(如部署构建产物),可通过Publish Over SSH插件实现:
Manage Jenkins > Manage Plugins > Available,搜索“Publish Over SSH”,点击“Install without restart”。Manage Jenkins > Configure System > Publish over SSH,点击“Add”添加远程主机: RemoteServer)。ubuntu)。/var/www/html,需提前创建)。dist/**/*,匹配构建产物)和目标目录(如/var/www/html),还可添加执行命令(如systemctl restart nginx)。sshPublisher步骤:pipeline { agent any stages { stage('Deploy') { steps { sshPublisher( publishers: [ sshPublisherDesc( configName: 'RemoteServer', // 对应配置的SSH主机名称 transfers: [ sshTransfer( sourceFile: 'dist/**/*', removePrefix: 'dist', remoteDirectory: '/var/www/html' ) ], execCommand: 'systemctl restart nginx' // 部署后重启服务 ) ] ) } } } } 若需将构建任务分发到远程Ubuntu服务器(Slave节点),可通过SSH连接实现:
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 - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list' sudo apt update && sudo apt install -y jenkins Manage Jenkins > Manage Nodes and Clouds > New Node,输入节点名称(如RemoteSlave),选择“Permanent Agent”,点击“OK”。 /home/ubuntu/jenkins)。RemoteSlave),任务将自动分发到该节点执行。