zoukankan      html  css  js  c++  java
  • 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)。

  • 相关阅读:
    使用递归实现字符串的反转
    .NetCore利用BlockingCollection实现简易消息队列
    .Net Core WebApi控制器接收原始请求正文内容
    反思
    重新解读DDD领域驱动设计(一)
    《实现领域驱动设计》笔记(1)-开卷有益总览
    我来悟微服务(3)-需求管理
    我来悟微服务(2)-惊魂一刻
    Bing.com在.NET Core 2.1上运行!
    Window下mysql环境配置问题整理
  • 原文地址:https://www.cnblogs.com/eleven24/p/9401005.html
Copyright © 2011-2022 走看看