【高可用架构】借助Envoy工具发布项目到多台服务器(二)
前言
在上一篇,我们已经成功在开发机上部署了Deploy项目,下面我们继续在开发机上安装Envoy
两台应用服务器的IP
192.168.10.12
192.168.10.18
【高可用架构】系列链接:待部署的架构介绍
演示
安装envoy
全局安装envoy,你也可以安装在当前项目下
1 | composer global require laravel/envoy |
在项目的根目录下创建Envoy.blade.php文件,首先我们先来测试一下Envoy是否可以正常工作
1 | # vi Envoy.blade.php |
运行Envoy
1 | envoy run deploy |
发现没有envoy命令,这主要是开发机没有配置composer环境变量,大家如果按照【Linux系统】来部署环境,就不会出现这个问题。
设置composer环境变量
1 | # vi ~/.bashrc |
保存后,执行source ~/.bashrc,使其生效
再执行envoy命令
执行成功,可以正常访问两台APP服务器,中途可能需要输入密码,先正常输入,我们后面去解决。
部署项目
在部署项目之前,修改下.gitignore文件
1 | .env #这行去掉 |
添加初始化任务
1 | # vi Envoy.blade.php |
执行任务
1 | envoy run init |
运行成功
更新项目
在开发机上修改Deploy/resources/views/welcome.blade.php文件84行
1 | 服务器IP:{{ $server_ip }} |
提交修改
1 | git add . |
修改deploy任务
1 | # vi Envoy.blade.php |
执行任务
1 | envoy run deploy |
两台APP服务器更新成功
免密码登录
在执行任务的时候总是要求输入密码,现在来解决一下这个问题
在开发机上执行下面命令
1 | ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.10.18 # 这里只有18机要求密码 |
这个原理就是就是将开发机上的公钥注册到18机的authorized_keys里面