温馨提示×

Ubuntu Java应用如何实现自动化部署

小樊
43
2025-08-07 08:30:53
栏目: 编程语言

以下是在Ubuntu上实现Java应用自动化部署的常见方案,可根据需求选择:

一、Jenkins + Docker(推荐)

  1. 安装Jenkins
    sudo apt update && sudo apt install openjdk-17-jdk wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io-2023.keys | 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 install jenkins sudo systemctl start jenkins && sudo systemctl enable jenkins 
  2. 配置Jenkins
    • 安装插件:Git、Pipeline、Docker等。
    • 创建Pipeline项目,配置Git仓库和构建触发器。
  3. 编写Jenkinsfile
    pipeline { agent any stages { stage('Build') { steps { sh 'mvn clean package' } // Maven打包 } stage('Docker Build') { steps { script { docker.build("app:${env.BUILD_ID}") } } } stage('Deploy') { steps { sh 'docker stop app || true' sh 'docker rm app || true' sh 'docker run -d --name app -p 8080:8080 app:${env.BUILD_ID}' } } } } 

二、Ansible自动化部署

  1. 安装Ansible
    sudo apt update && sudo apt install ansible 
  2. 编写Playbook
    - hosts: webservers become: true tasks: - name: 安装Java apt: name=openjdk-17-jdk state=present - name: 上传JAR包 copy: src=/local/app.jar dest=/opt/app.jar - name: 启动应用 shell: nohup java -jar /opt/app.jar > /dev/null 2>&1 & 
  3. 执行部署
    ansible-playbook -i hosts deploy.yml 

三、Shell脚本+SSH(轻量级)

  1. 编写部署脚本
    #!/bin/bash SERVER_IP="your_server_ip" JAR_PATH="/opt/app.jar" LOCAL_JAR="target/app.jar" # 停止旧进程 ssh user@$SERVER_IP "pkill -f $JAR_PATH || true" # 上传新JAR scp $LOCAL_JAR user@$SERVER_IP:$JAR_PATH # 启动新进程 ssh user@$SERVER_IP "nohup java -jar $JAR_PATH > /dev/null 2>&1 &" 
  2. 配置SSH免密
    ssh-keygen -t rsa ssh-copy-id user@$SERVER_IP 

四、关键注意事项

  • 环境一致性:使用Docker或Ansible确保开发与生产环境一致。
  • 权限管理:通过SSH密钥或Jenkins凭据避免密码泄露。
  • 日志监控:部署后检查应用日志(如journalctl -u appdocker logs)。

根据项目规模选择方案:小型项目可用Shell脚本,中型项目推荐Jenkins+Docker,大型企业级项目可结合Ansible实现全流程自动化。

0