【高可用架构】借助Envoy工具发布项目到多台服务器

前言



在上一篇,我们已经成功在开发机上部署了Deploy项目,下面我们继续在开发机上安装Envoy

两台应用服务器的IP

192.168.10.12

192.168.10.18

【高可用架构】系列链接:待部署的架构介绍

演示


安装envoy

全局安装envoy,你也可以安装在当前项目下

composer global require laravel/envoy

在项目的根目录下创建Envoy.blade.php文件,首先我们先来测试一下Envoy是否可以正常工作

# vi Envoy.blade.php
@servers(['app-1' => '[email protected]', 'app-2' => '[email protected]']) # 定义多个APP服务器

@task('deploy', ['on' => ['app-1', 'app-2']])
        cd /var/www #项目所在地
        ls -la
@endtask

运行Envoy

envoy run deploy

发现没有envoy命令,这主要是开发机没有配置composer环境变量,大家如果按照【Linux系统】来部署环境,就不会出现这个问题。

设置composer环境变量

# vi ~/.bashrc
PATH=$PATH:/root/.config/composer/vendor/bin

保存后,执行source ~/.bashrc,使其生效

再执行envoy命令

执行成功,可以正常访问两台APP服务器,中途可能需要输入密码,先正常输入,我们后面去解决。

部署项目

在部署项目之前,修改下.gitignore文件

.env #这行去掉

添加初始化任务

# vi Envoy.blade.php
@task('init', ['on' => ['app-1', 'app-2']])
    mkdir -p /var/www/ #统一项目地址
    cd /var/www/
    git clone [email protected]:SexyPhoenix/Deploy.git #部署的github项目,在github项目中复制链接
    cd Deploy
    composer install --no-dev
    chmod -R 0777 storage
@endtask

执行任务

envoy run init

运行成功

更新项目

在开发机上修改Deploy/resources/views/welcome.blade.php文件84行

服务器IP:{{ $server_ip }}

提交修改

git add .
git commit -m 'fix IP name'
git push

修改deploy任务

# vi Envoy.blade.php
@task('deploy', ['on' => ['app-1', 'app-2']])
    cd /var/www/Deploy
    git pull origin master
@endtask

执行任务

envoy run deploy

两台APP服务器更新成功

免密码登录

在执行任务的时候总是要求输入密码,现在来解决一下这个问题

在开发机上执行下面命令

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] # 这里只有18机要求密码

这个原理就是就是将开发机上的公钥注册到18机的authorized_keys里面

原文地址:https://www.cnblogs.com/SexyPhoenix/p/11981872.html

时间: 2024-10-10 19:49:04

【高可用架构】借助Envoy工具发布项目到多台服务器的相关文章

CentOS 7 部署百万pv项目(高可用架构)

PV简介 PV(Page View,页面浏览量)即点击量,通常意义上说PV的多少是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标.pv的解释是这样的:一个访问者在24小时(0点-23点)内到底看了网站的几个页面.需要注意的是:同一个人浏览网站的同一个页面,不重复计算pv量,点击100次页只算1次. 百万pv网站架构 本次实验设计采用四层模式实现,主要分为前端反向代理层.web层.数据库缓存层和数据库层.前端反向代理层采用主备模式,web层采用集群模式,数据库缓存层采用主备模式,数据库层采用

【高可用架构】用Nginx实现负载均衡(三)

前言 在上一篇,已经用Envoy工具统一发布了Deploy项目代码.本篇我们来看看如何用nginx实现负载均衡 负载均衡器IP 192.168.10.11 [高可用架构]系列链接:待部署的架构介绍 演示 配置应用服务器 首先,需要将上一篇部署的两台应用服务器,都能够单独访问 配置192.168.10.12.192.168.10.18上nginx的config # vi /etc/nginx/config.d/dev.deploy.goods.conf server { listen 80; se

雪球在股市风暴下的高可用架构改造分享

本文根据唐福林老师在“高可用架构”微信群所做的<股市风暴下的雪球架构改造经验分享>整理而成,转发请注明来自微信公众号ArchNotes. 唐福林,雪球首席架构师,负责雪球业务快速增长应对及服务性能与稳定架构优化工作.毕业于北京师范大学,硕士学位.之前曾任微博平台资深架构师,微博技术委员会成员.长期关注并从事互联网服务后端性能及稳定性架构优化工作. 雪球公司介绍 雪球 聪明的投资者都在这里. web 1.0:新闻资讯,股价信息,K线图 web 2.0:SNS 订阅,分享,聊天 web 3.0:移

模拟当当网高可用架构之道(分布式集群)

系统中的非功能性需求今天我们的主是当当高可用架构设计之道,高可用并不是功能性的需求,而是传统的IT当中非功能性需求的一部分.大家可以看到我这里罗列了很多非功能性需求,但是这当中并没有「高可用」这三个字. 举一个例子,比如说你买了一台苹果手机,无论是作为手机还是电脑,还是MP3,还是专门用来看视频的,都是功能:那么非功能性呢,比如说大家很崇 拜乔布斯,产品设计极致体验,苹果手机只有1个键,简单好用,这就是一个非功能性需求.另外还有很多朋友买土豪金的手机,就是为了区分开,因为颜色不一 样.这个颜色也

基于DevOps 微服务以及k8s的高可用架构探索与实现

现代的企业面临着一个VUCA的时代,高可用系统架构面对着诸多不确定性带来的影响和挑战,如何才能能够突破困境,使得复杂的系统仍然能保持业务的连续性.业务的弹性扩容也同时会对高可用性的架构造成影响,在实践中,我们结合微服务/K8S/DevOps这三架马车进行了微服务的容器化的实践之路. 高可用架构的挑战 在现实的复杂而又不确定性的环境下,高可用架构面临诸多挑战,都可能对系统带来巨大影响,比如: 应用程序的异常退出 操作系统的突然宕机 服务器的意外断电 运维人员人为操作失误 地震等不可抵抗因素 业务量

单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构(转)

转自http://www.php1.cn/Content/DanBiao_60_YiJiLuDengDaShuJuChangJingDe_MySQL_YouHuaHeYunWeiZhiDao_%7C_GaoKeYongJiaGou.html, 更多详细资料请参看原文 此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计.前新浪高

【亲述】Uber容错设计与多机房容灾方案 - 高可用架构系列

此文是根据赵磊在[QCON高可用架构群]中的分享内容整理而成.转载请事先联系赵磊及相关编辑. 赵磊,Uber高级工程师,08年上海交通大学毕业,曾就职于微软,后加入Facebook主要负责Messenger的后端消息服务.这个系统在当时支持Facebook全球5亿人同时在线.目前在Uber负责消息系统的构建并推进核心服务在高可用性方向的发展. 前言 赵磊在7月21号的全球架构师峰会深圳站上,做了主题演讲:Uber高可用消息系统构建,对于这个热门主题,高可用架构群展开了热议,大家对分布式系统中的各

Twitter 高并发高可用架构

解决 Twitter的“问题”就像玩玩具一样,这是一个很有趣的扩展性比喻.每个人都觉得 Twitter很简单,一个菜鸟架构师随便摆弄一下个可伸缩的 Twitter就有了,就这么简单.然而事实不是这样, Twitter的工程副总裁 Raffi Krikorian细致深入的描述了在 Twitter在可伸缩性上的演化过程,如果你想知道 Twitter的如何工作—从这里开始吧. Twitter发展太快,一切转瞬即过,但 Twitter已经长大了.它从一开始一个在Ruby on Rails上苦苦挣扎的小网

[转载] 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209406532&idx=1&sn=2e9b0cc02bdd4a02f7fd81fb2a7d78e3&scene=1&key=0acd51d81cb052bce4ec2a825666e97fe7d6e1072fb7d813361771645e9403309eb1af025691162c663b60ea990c3781&ascene=0&