Jenkins自动化部署tomcat环境 PHP环境

一、Jenkins 是啥?

Jenkins 就是一个自动帮你干活 的工具,专门用来持续集成 (CI)和持续交付/部署 (CD)。

它用 Java 写的,装起来很简单,下载一个 jenkins.war 文件就能跑,不用装数据库。

它可以自动从 Git、SVN 这类代码仓库拉代码,然后编译、测试、打包、甚至部署到服务器上。

出了问题会发邮件提醒,还能用图表展示构建情况。


二、啥是 CI / CD?

  • 持续集成(CI):开发人员一天多次把代码提交到主干,Jenkins 自动拉代码、编译、测试。这样能早点发现冲突和错误,避免最后集成时乱成一锅粥。

  • 持续交付(CD):在 CI 的基础上,自动把代码部署到"类生产环境"(比如测试服务器),随时可以手动发布到生产。

  • 持续部署(CD) :更近一步,代码通过测试后自动部署到生产环境,不用人工点按钮。

简单说:CI 解决"代码能不能合到一起",CD 解决"代码能不能随时上线"。


三、怎么安装 Jenkins(以 OpenEuler 系统为例)

  1. 添加安装源:下载 Jenkins 的 repo 文件,导入密钥。

  2. 安装 :先装 fontconfigjava-17-openjdk,再装 jenkins

  3. 启动后访问 :浏览器打开 Jenkins,第一次登录需要从服务器上找初始密码(命令 cat /var/lib/jenkins/secrets/initialAdminPassword)。

  4. 初始化设置:安装推荐插件、创建管理员账号、配置实例地址。

  5. 改密码、装插件:登录后可以改密码,按需安装插件,比如:

    • Publish Over SSH:通过 SSH 把文件发到远程服务器。

    • Maven Integration:支持 Maven 项目构建。

  6. 调整配置:设置 Jenkins 同时跑几个任务、配置邮件通知等。


四、一句话总结

这份文档就是教你从零搭一个 Jenkins 自动构建环境,让代码一提交就自动编译、测试、打包,还能自动发到服务器,省得手动折腾。适合想要提高开发效率和发布质量的团队。

PHP

1. 准备工作(环境)

  • 有几台机器:Git 服务器 (放代码)、Jenkins 服务器 (负责自动发布)、Web 服务器(跑网站)。

  • 需要先装好 Git、Jenkins、Web 环境(比如 Nginx + PHP + MySQL)。


2. 搭建 Git 仓库

  • 在 Git 服务器上新建一个用户 git,然后建一个"裸仓库"(就是一个专门用来存代码版本、不干活的地方)。

  • 开发人员把写好的 PHP 代码(比如 index.php)上传到这个仓库里。


3. 配置 Web 服务器

  • 安装 Nginx(或 Apache)+ PHP + MySQL + PHP-FPM。

  • 修改 Nginx 配置文件,让它能处理 .php 文件。

  • 启动服务,测试一下能正常访问 PHP 页面。


4. Jenkins 免密登录

  • 在 Jenkins 机器上生成 SSH 密钥(公钥+私钥)。

  • 公钥复制到 Git 服务器和 Web 服务器上,这样 Jenkins 不用输密码就能拉代码、推代码。


5. 几种自动部署方式

方式一:用 rsync 同步(自由风格项目)
  • 在 Jenkins 里新建一个"自由风格"任务。

  • 配置 Git 仓库地址,让 Jenkins 去拉代码。

  • 构建步骤里写 rsync 命令,把拉下来的代码同步到 Web 服务器的网站目录。

  • 点"立即构建",Jenkins 就会自动完成拉代码+同步。

方式二:用 Ansible 部署
  • 在 Jenkins 机器上装 Ansible,配置好 Web 服务器的 IP(比如 [webserver] 组)。

  • 把 Jenkins 运行用户改成 root(避免权限问题),并配好 SSH 免密。

  • 安装 Jenkins 的 Ansible 插件。

  • 在 Jenkins 任务里调用 Ansible 命令或 playbook,把代码部署到 Web 服务器。

方式三:用 Pipeline(流水线)
  • 写一个 Jenkinsfile,里面定义两个阶段:

    1. 拉代码 :用 git 从仓库克隆代码。

    2. 部署 :用 scp 命令把代码复制到 Web 服务器上。

  • Jenkins 按这个脚本自动执行,成功或失败都会有提示。


6. 最后顺便提了一下 Discuz 论坛的部署

  • 文档里只写了个标题,内容没展开,意思是可以把 Discuz(一个 PHP 论坛程序)也按同样方式自动部署。

总结一句话

让 Jenkins 自动从 Git 拉取 PHP 代码,然后通过 rsync、Ansible 或 scp 把它发到 Web 服务器上,省得每次手动上传。 前提是先把 SSH 免密登录配好,Web 环境也要提前装好。

相关推荐
泛联新安6 小时前
“天神”空降:泛联新安受邀参加第八届“纵横”网络空间创新论坛
网络安全·自动化·代码规范·漏洞挖掘·代码安全·代码漏洞扫描·ai+可信开发
hhb_6187 小时前
智能任务自动化协同AI工作流技术文档
运维·人工智能·自动化
泛联新安8 小时前
FPGA仿真加速:AccEmu正式亮相,一周的回归,一天跑完
机器学习·fpga开发·数据挖掘·回归·自动化·嵌入式软件·代码漏洞扫描
ii_best8 小时前
iOS按键精灵大更新!引擎2.9.1+APP 2.5.3双发,支持18.7.1系统,蓝白巨魔都能装APP!
ios·自动化
天远Date Lab9 小时前
零信任架构实战:基于天远全能个人大数据报告构建自动化核心KYC网关
大数据·人工智能·架构·自动化
pt10439 小时前
从恐惧到自动化的百年突围
运维·自动化
HackTwoHub9 小时前
AI自动化信息收集赋能渗透测试!集成多款主流扫描工具,多维智能评分,精准锁定高危资产
运维·人工智能·安全·web安全·网络安全·自动化·系统安全
2601_9622845010 小时前
利用Python语言实现实验室自动化
python·自动化·数据采集·labview·科学计算
隐擎fox10 小时前
网络传输中的 DNS 泄漏成因剖析与 Python 自动化检测排查实战
python·网络协议·自动化·dns·ip/tcp
智塑未来19 小时前
自动化立体库工业无线通信:AGV、AMR、RGV、穿梭车、无人叉车、堆垛机全覆盖
运维·自动化