php 中 envoy 的使用方法
envoy 是什么?
envoy 是一个支持 blade 语法的 ssh 远程命令执行的工具。具体来说就是,通过配置 ssh 的账号、密码、key 这些,然后可以使用 envoy 运行一些预定义的命令(比如 git 更新什么的)。
安装
composer global require laravel/envoy
怎么使用?
配置(~/.ssh/config):
关于 ssh key 配置官网文档没有说,但是 google 出来了,需要在 ~/.ssh/config 下面定义你每个 server 对应的 key file,我们假设里面有如下内容:
Host 12.34.56.78
IdentityFile ~/.ssh/id_rsa
User root
如果我们有另外一个服务器,那么可以按如上格式再另写三行,以此类推。
配置有了,接下来就是写具体命令了:
在项目根目录新建一个 Envoy.blade.php 文件,这个官网文档有说,第一行定义 servers,注意,不能换行,否则会报错,也许是个 bug,如:
@servers(['web' => '127.0.0.1', 'test' => '12.34.56.78'])
我们假设有一个更新项目的操作,如:
@task('update', ['on' => ['web', 'test']])
cd "/path/to/project"
{{PHP_BINARY}} artisan config:cache
{{PHP_BINARY}} artisan route:cache
{{PHP_BINARY}} artisan optimize --force
"/composer/binary" dumpautoload
@endtask
这样我们运行下面命令的时候,就会进行一些操作:
envoy run update
我们可以使用一些 blade 的语法,如,在 task 中使用变量,这个变量可以是我们在 @setup 中设置的。
tips:对于另外一些操作,比如需要交互的,如可能 git pull 的时候需要输入账号密码的,可以尝试一下 except(当然,不支持 windows)。
php 中 envoy 的使用方法的更多相关文章
- JavaScript中Math对象的方法介绍
1.比较最值方法 比较最值有两种方法,max() 和 min() 方法. 1.1 max() 方法,比较一组数值中的最大值,返回最大值. var maxnum = Math.max(12,6,43,5 ...
- Android中锁定文件的方法
androidSDK中并没有锁定文件相关的api. 但是android是基于linux操作系统的,linux比较底层,灵活性也更大,为了实现锁定文件的效果,大概有以下几种办法: 用chmod命令修改文 ...
- jQuery中的事件绑定方法
在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...
- Eclipse中自动提示的方法参数都是arg0,arg1的解决方法
Eclipse中自动提示的方法参数都是arg0,arg1,就不能根据参数名来推断参数的含义,非常不方便. 解决方法:Preferences->Java->Installed JREs,发现 ...
- Power BI官方视频(2) Power BI嵌入到应用中的3种方法
今天给大家介绍3种将Power BI嵌入到应用中的方法. 本文原文地址:Power BI官方视频(2) Power BI嵌入到应用中的3种方法 Power BI系列文章地址:微软Power BI技术文 ...
- JQuery中each()的使用方法说明
JQuery中each()的使用方法说明 对于jQuery对象,只是把each方法简单的进行了委托:把jQuery对象作为第一个参数传递给jQuery的each方法.换句话说:jQuery提供的eac ...
- Dedecms去掉URL中a目录的方法
本文实例讲述了Dedecms去掉URL中a目录的方法.分享给大家,供大家参考.具体分析如下: 使用dedecms的朋友可能会发现自己的URL目录生成是会自动带有一个/A/目录了,那么要如何去掉URL中 ...
- 【转】C#中WinForm程序退出方法技巧总结
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.Ex ...
- inux中shell截取字符串方法总结
shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...
随机推荐
- Alpha阶段项目展示博客
烫烫烫烫烫(hotcode5)团队 1. 团队成员的简介和个人博客地址 刘畅 博客园ID:森高Slontia 身份:PM 个人介绍: 弹丸粉 || 小说创作爱好者 || 撸猫狂魔(x || 生命的价值 ...
- Python20 - Day09
python并发编程之多线程理论 1.什么是线程? 进程只是用来把资源集中到一起(进程是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位. 多线程(多个控制线程)的概念是,在一个进程中存在 ...
- mysql实现oracle sequence方案
转自: http://blog.csdn.net/javaGirlOne/article/details/47256183 背景:先总结一下MYSQL 自增长与ORACLE 序列的区别: 自增长只能用 ...
- bootstrap中的data-toggle模态框相关
一,点击即打开1,点击按钮 <a href="javascript:void(0)" class="btn btn-primary" data-toggl ...
- Bing词典vs有道词典比对测试报告——体验篇之软件适应性
联网情况: 在联网情况下,针对每一次查询,有道词典的反应速度明显比必应词典快得多.据我推测有以下两个原因: 有道词典有本地词库而必应词典更多依赖联网. 有道词典的服务器在国内而必应的在国外. 断网情况 ...
- delphi 图像处理 图像左旋右旋
procedure TDR_QM_ZP_Form.btn_ZXClick(Sender: TObject); //图像左旋 begin screen.Cursor := crhourglass; my ...
- Task 6.2冲刺会议五 /2015-5-18
今天继续深入的看了看服务器的内容,修改了昨天的代码,发现网络编程还是很好玩的,感觉他的代码比平常写的更有趣一点,另外登陆界面也稍微看了一点.明天准备把登陆界面完善一下.
- Beta冲刺(5/7)
队名:天机组 组员1友林 228(组长) 今日完成:修改代码 明天计划:封装代码 剩余任务:优化网络通讯机制 主要困难:暂无 收获及疑问:暂无 组员2方宜 225 今日完成:优化了ui界面 明天计划: ...
- 电梯调度系统(界面由C图形库编绘)
电梯调度系统编程 1.编程题目 电梯调度. 2.结对编程组员 黄冠译,刘畅. 3.编程语言 C语言图形库. 4.题目要求: 5.代码运行及结果调试: ① 运行界面为C++图形库支持,开始运行的初始界面 ...
- iOS- 本地文本容错搜索引擎2-->如何实现英文(英文首字母,汉语拼音)对中文的搜索?
1.前言 先闲说几句,最近北京的雾霾真是大,呛的我这攻城师都抗不住了.各位攻城师们一定要爱护好自己的身体!空气好时,少坐多动. 如果条件好的话,最好让你们BOSS搞个室内空气净化器.因为那几天一般 ...