centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文

本文详细介绍了如何在centos7环境下搭建jenkins、gitlab、gradle、sonarqube和springBoot的集成环境,包括Jenkins的安装、配置、端口调整、安全设置,以及gitlab的访问令牌设置和ssh密钥管理。此外,还涉及到了sonarqube的安装、配置与数据库连接,以及与jenkins的集成。整个过程旨在实现日志预警和持续集成的自动化流程。

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+日志预警

搭建背景:公司让我在内网环境下搭建Jenkins,在配置docker时出了点问题,后续解决Bug后会更新。新人第一篇不足之处,请批评指正 持续更新中这段时间比较忙我会尽快完善,最后更新时间->20190827 12:53。。。。所以看到的是一部分

Jenkins背景(没有兴趣的朋友可以跳过)

可以去参考下面这位大哥的这里不过多解释了
持续集成、持续交付、持续部署(CI/CD)简介

jenkins介绍
Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。
Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。
Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson
Jenkins官网:https://jenkins.io/Jenkins
下载:http://updates.jenkins-ci.org/
jenkins的全部镜像:http://mirrors.jenkins-ci.org/status.html

第一步jenkins的安装

Jenkins 自身采用 Java 开发,所以要必须安装 JDK;
卸载openjdk
查询 rpm -qa|grep java
删除 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64

安装jdk
链接:https://pan.baidu.com/s/1Tedaf1GMHqwcDxm-xTdw2g
提取码:sshl
解压jdk文件到当前文件夹
cd /usr/local/java
tar -zvxf jdk-8u211-linux-x64.tar.gz
设置环境变量(修改/etc/profile文件)
vim /etc/profile
(博客写到这里的时候遇到个$不显示的问题加个\ 就好了)
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
重启
shutdown -r now 或 reboot
安装环境linux
以下四种方法任选一种
1.离线安装
http://pkg.jenkins-ci.org/redhat/wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm
下载(也可以Windows下载再转过来)
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key
公钥sudo yum -y install jenkins-*.noarch.rpm
2.在线安装
http://pkg.jenkins-ci.org/redhat/sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keysudo yum -y install jenkins
3基于Tomcat
安装并启动 Tomcat;从官网下载 jenkins.war 至 $CATALINA_BASE/webapps,Tomcat 会自动部署;浏览器访问:http://centos:8080/jenkins/
4.免安装wget http://mirrors.jenkins.io/war-stable/latest/jenkins.warsudo
java -jar jenkens.war ## 启动服务,直至看到日志
Jenkins is fully up and runningcurl http://localhost:8080/ ## Jenkins 已就绪

我采用的是第二种方式添加yum源下载安装Jenkins
[root@git ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo
[root@git ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@git ~]# yum -y install jenkins
DeltaRPMs disabled because /usr/bin/applydeltarpm not installed.
安装deltarpm :
yum provides ‘*/applydeltarpm’
yum install deltarpm
yum -y install jenkins
NoPresto metadata available for jenkins
https://pkg.jenkins.io/redhat/
下载对应的jenkins-2.191-1.1.noarch.rpm
r

<think>好的,我现在要帮用户解决在腾讯云CVM上部署SpringBoot和Vue项目的问题。用户之前问过CVM和Lighthouse的区别,现在具体到部署流程,需要详细步骤。 首先,我需要结合用户提供的引用内容。引用1提到了Vue+SpringBoot+MySQL项目使用CVM,引用2是SSM项目部署到阿里云的步骤,包括安装JDK、MySQL、Tomcat,生成war文件等。虽然引用2是阿里云,但步骤可能类似,需要调整成腾讯云的环境。 用户的需求很明确:如何在腾讯云CVM上部署这两个项目。我需要分步骤说明,可能包括环境准备、后端部署、前端部署、配置数据库等。还要注意用户可能不熟悉服务器操作,所以步骤要详细,比如使用Xshell和Xftp,或者宝塔面板简化操作。 另外,用户之前的回答里提到了CVM支持自定义网络、灵活配置,所以在部署时可能需要开放端口,比如80、443、8080等,确保安全组设置正确。同时,考虑到SpringBoot通常使用jar包,可能需要用到Nginx反向代理,或者Tomcat部署,但引用2提到的是war文件,所以需要确认用户项目是jar还是war,不过现在SpringBoot多使用内嵌Tomcat,所以jar更常见。 可能还需要考虑MySQL的安装和远程连接配置,避免常见的问题比如权限设置。此外,前端Vue项目通常是静态文件,用Nginx托管即可,需要配置代理解决跨域问题。 用户可能有疑问的地方包括环境变量的配置、HTTPS证书的申请、域名绑定等,但用户的问题主要集中在部署步骤,所以可能不需要深入HTTPS,但可以简要提及。 需要确保步骤清晰,命令准确,避免出错。例如,安装Java环境时,要指定版本,更新系统包,使用正确的命令。同时,检查防火墙状态,确保端口开放。 可能还需要给出示例命令和代码片段,比如application.properties的配置,Nginx的配置示例,方便用户复制粘贴。 最后,考虑到用户可能遇到问题,添加常见问题解答,比如如何排查连接失败,日志查看方法等。这样用户遇到问题可以自助解决。 总结步骤大致如下: 1. 准备CVM实例:购买、配置安全组。 2. 连接服务器:使用SSH工具。 3. 安装环境:Java、MySQL、Nginx。 4. 部署后端:打包SpringBoot项目,上传并运行。 5. 部署前端:构建Vue项目,上传到Nginx目录。 6. 配置数据库:导入数据,修改SpringBoot配置。 7. 启动和测试:检查服务是否正常运行。 8. 进阶配置:域名、HTTPS、自动化部署。 过程中要注意引用之前提到的CVM特性,比如弹性IP,安全组设置,以及可能用到的工具如宝塔面板简化流程。同时,根据用户提供的引用2中的步骤,调整成腾讯云的具体操作,比如使用腾讯云的镜像市场是否有预装环境,或者是否需要手动安装。 还要考虑用户的项目结构,是否需要分离前后端,或者是否在同一服务器部署。假设是分离的,后端API和前端分开部署,所以需要Nginx作为反向代理和静态服务器。 确保每个步骤都有明确的命令和解释,比如如何上传文件,使用scp或者Xftp,如何设置服务自启动(systemd服务单元文件)等。 最后,生成相关问题,帮助用户进一步学习,比如如何优化性能、配置HTTPS、自动化部署等。</think>### **腾讯云 CVM 部署 SpringBoot + Vue 项目全流程指南** --- #### **1. 准备工作** - **购买并配置 CVM 实例** 1. 登录腾讯云控制台,选择 **云服务器 CVM** → **新建实例** 2. 建议配置(根据项目规模调整): - 系统镜像:Ubuntu 20.04 LTS 或 CentOS 7.9(推荐) - 安全组:开放端口 **80(HTTP)**、**443(HTTPS)**、**8080(后端API)**、**3306(MySQL,建议仅内网开放)**[^1] - 存储:系统盘 ≥ 50GB(根据项目文件大小调整) - **连接服务器** 使用 SSH 工具(如 Xshell 或 FinalShell)连接实例: ```bash ssh root@<服务器公网IP> ``` --- #### **2. 环境安装与配置** - **安装 Java 环境(SpringBoot 依赖)** ```bash # Ubuntu/Debian sudo apt update sudo apt install openjdk-11-jdk # CentOS sudo yum install java-11-openjdk-devel ``` 验证安装: ```bash java -version # 输出应包含 "openjdk 11.0.x" ``` - **安装 MySQL 数据库** ```bash # Ubuntu/Debian sudo apt install mysql-server sudo systemctl start mysql # CentOS sudo yum install mariadb-server sudo systemctl start mariadb ``` 安全配置: ```bash sudo mysql_secure_installation # 设置 root 密码并禁用远程登录(可选) ``` - **安装 Nginx(前端部署与反向代理)** ```bash # Ubuntu/Debian sudo apt install nginx # CentOS sudo yum install nginx sudo systemctl start nginx ``` --- #### **3. 部署 SpringBoot 后端** - **打包项目** 在本地使用 Maven 或 Gradle 打包为可执行 JAR 文件(以 Maven 为例): ```bash mvn clean package -DskipTests ``` 生成文件路径:`target/<项目名>.jar` - **上传 JAR 文件** 使用 Xftp 或 `scp` 上传至服务器(例如 `/opt/backend` 目录): ```bash scp target/your-project.jar root@<服务器IP>:/opt/backend ``` - **配置启动服务** 创建 Systemd 服务文件 `/etc/systemd/system/springboot.service`: ```ini [Unit] Description=SpringBoot Application After=syslog.target [Service] User=root ExecStart=/usr/bin/java -jar /opt/backend/your-project.jar Restart=always [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start springboot sudo systemctl enable springboot # 设置开机自启 ``` --- #### **4. 部署 Vue 前端** - **构建生产环境代码** 在本地执行: ```bash npm run build # 生成 dist 目录 ``` - **上传静态文件** 将 `dist` 目录上传至服务器 Nginx 默认目录(如 `/var/www/vue-app`): ```bash scp -r dist/* root@<服务器IP>:/var/www/vue-app ``` - **配置 Nginx 反向代理** 编辑配置文件 `/etc/nginx/conf.d/vue-app.conf`: ```nginx server { listen 80; server_name your-domain.com; # 替换为域名或服务器IP # 前端静态资源 location / { root /var/www/vue-app; index index.html; try_files $uri $uri/ /index.html; } # 反向代理后端API location /api/ { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 重启 Nginx: ```bash sudo nginx -t # 检查配置语法 sudo systemctl reload nginx ``` --- #### **5. 数据库配置** - **导入数据** 1. 本地导出 SQL 文件: ```bash mysqldump -u root -p your_database > backup.sql ``` 2. 上传至服务器并导入: ```bash mysql -u root -p your_database < backup.sql ``` - **修改 SpringBoot 数据库连接** 编辑 `application.properties`: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=your_password ``` --- #### **6. 验证与测试** 1. **访问前端页面** 浏览器输入 `http://<服务器IP>`,应显示 Vue 页面。 2. **检查 API 接口** 访问 `http://<服务器IP>/api/health-check`(假设有此接口),返回 JSON 数据即表示后端正常。 3. **查看日志排错** ```bash journalctl -u springboot -f # 查看 SpringBoot 实时日志 tail -f /var/log/nginx/error.log # 查看 Nginx 错误日志 ``` --- ### **进阶配置建议** - **域名与 HTTPS** 使用腾讯云 **SSL 证书** 服务申请免费证书,并在 Nginx 中配置 HTTPS 监听[^1]。 - **自动化部署** 结合 GitHub Actions 或 Jenkins 实现 CI/CD(参考示例): ```yaml # GitHub Actions 示例片段 - name: Deploy to CVM uses: appleboy/ssh-action@master with: host: ${{ secrets.SERVER_IP }} username: root key: ${{ secrets.SSH_PRIVATE_KEY }} script: | cd /opt/backend systemctl restart springboot ``` --- ### **常见问题解答** **Q1: 前端访问后端 API 出现跨域错误怎么办?** - 方案1:在 Nginx 配置中添加 CORS 头: ```nginx add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; ``` - 方案2:在 SpringBoot 中配置 `@CrossOrigin` 注解或全局 CORS 过滤器[^2]。 **Q2: 服务器内存不足导致应用崩溃?** - 调整 JVM 参数(例如限制内存): ```ini ExecStart=/usr/bin/java -Xmx512m -jar /opt/backend/your-project.jar ``` --- ### **相关问题** 1. 如何通过负载均衡提升 SpringBoot 应用的并发处理能力? 2. Vue 项目如何配置 CDN 加速静态资源加载? 3. 腾讯云 CVM 如何实现自动备份与灾难恢复? --- **扩展工具推荐**: - 使用 **宝塔面板** 可简化环境配置(支持一键安装 LNMP 环境)[^2] - 使用 **Docker** 容器化部署可避免环境依赖冲突(参考腾讯云容器服务 TKE)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值