安静
PHP技术博客

160327 使用Envoy管理多服务器

在多服务器负载均衡的时候,会有代码发布问题,如果你很懒的去架设jekins这种持续话集成工具的时候,你可以使用Envoy试试,当然你也可以用cobbler puppet.但我相信当你使用过Envoy 你会惊艳她功能的

Envoty(Laravel Envoy):

提供了简洁、轻量的语法用于定义在远程服务器上可执行的通用任务。通过 Blade 风格的语法,你可以很容易地设置任务从而完成部署、执行 Artisan 命令或其他更多工作。

如何安装Envoy:

//安装Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
//将Composer配置给所有用户
composer global require "laravel/installer"
//安装Laravel Envoy
composer global require "laravel/envoy=~1.0"
//将bin放入当前用户Path
echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc
//导入,免登出
source ~/.bashrc
//添加larvel执行权限
chmod +x /root/.composer/vendor/laravel/installer/laravel
//添加envoy执行权限
chomp +x /root/.composer/vendor/laravel/envoy/envoy

注意:

这里需要proc_open支持所以你查看是否支持

/usr/local/php/etc/php.ini
//删除
disable_functions中
proc_open proc_status

使用Envoy创建任务

envoy init gb@192.168.10.10
Envoy file created!

会生成文件:

Envoy.blade.php

文件内容编辑成如:

  vim Envoy.blade.php
@servers(['web' => 'gb@192.168.10.10 -p 70011'])
@task('deploy')
cd /home/backup
echo "asdasdas" >> 1.log
@endtask

执行Envoy

envoy run deploy

多服器配置运行:

@servers(['web-1' => '192.168.1.1', 'web-2' => '192.168.1.2'])
@task('deploy', ['on' => ['web-1', 'web-2']])
cd site
git pull origin {{ $branch }}
php artisan migrate
@endtask

更多阅读:

赞(0) 打赏
未经允许不得转载:AJ's Blog » 160327 使用Envoy管理多服务器
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    tan_haipeng2年前 (2016-07-27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏