自动化部署(持续集成 / CI + 持续交付 / CD)是一个软件开发的趋势,是对 DevOps 的一个很好的帮助发展推进。今天实践的是基于 Docker+Jenkins+LNMP + 码云,实现 PHP 代码的自动化部署过程。
环境配置
操作系统:CentOS Linux release 7.6.1810
Docker 版本:19.03.5
Jenkins 版本:2.204.1
Nginx 版本:1.15.5
PHP 版本:7.2.26
MySQL 版本:8.0.18
Redis 版本:5.0.5
码云:代码仓库
码云仓库准备
创建项目仓库
Jenkins 准备
安装 ssh 插件
因为构建项目式,需要执行服务器的一些shell命令,所以采用ssh登录方式与远程服务器进行通信。
1. 系统管理->插件管理
2. 搜索:ssh,安装即可
新建工程任务
任务名称不能是中文哦,选择第一个:Freestyle project 自定义项目
工程任务配置
1. 源码管理选择:git
2. Repository URL:仓库地址(我的是码云仓库)
3. Credentials选择添加
4. 添加凭据
5. 配置仓库私钥(具体可查看码云的仓库密钥管理帮助)
凭据配置成功后,选择上一步凭据配置的Username即可,这下如果成功连接上仓库地址,则不会报错了。
构建触发器选择:G(本文来)源gaodaimacom搞#^代%!码&网(
搞gaodaima代码
ithub hook trigger for GITScm polling
构建环境:Use secret text(s) or file(s) //私密方式传输文件
凭据:选择指定凭据git
配置 ssh
1. 系统管理->系统配置
2. 配置远程服务器ssh相关信息
配置构建 shell 脚本
构建:Execute shell script on remote host using ssh //构建时执行远程服务器shell脚本
1. 填写SSH site //远程服务器ssh登录
2. Command //shell脚本
备注:
因为代码自动部署在jenkins的工作空间workspace目录下,而项目的站点目录在/data/www下,所以在构建时,需要把更新的代码文件复制到项目站点下(这里有多种实现方式,这里使用代码复制一份,是因为代码的大小不会占很大的空间,现在很多静态资源都放在一些云服务上了)