使用Envoy实现一键部署项目

Envoy是一个composer扩展包,它的本质作用是代替你登录远程的目标服务器(下称目标机)并执行一系列命令,它的执行环境要有事先装有php与composer,但它不仅仅能在php项目里起作用,原因是前面提到的它的本质是帮你执行命令,而这命令不只针对php的命令。因此你不仅可以把它当作部署项目的工具,甚至可以是对目标机的简单管理工具。
下面从本地机对目标机的登录到envoy的安装使用来分步介绍它。

实现本地机与目标机的ssh密钥登录

假定目标服务器是sorgo@192.168.8.8

#如果本地机的用户还没rsa密钥的那先生成
ssh-keygen -t rsa -C "your_email@example.com"
#发送密钥到目标机,并进行密码验证
ssh-copy-id sorgo@192.168.8.8
#测试是否能直接ssh登录而不再要求输入密码
ssh sorgo@192.168.8.8

安装和使用

#全局安装
composer global require laravel/envoy
#一键生成envoy执行文件模板:Envoy.blade.php
envoy init sorgo@192.168.8.8

修改Envoy.blade.php文件

{{-- 这是blade文件里的注释 --}}
{{-- web是标识这台服务器的名字 --}}
@servers(['web' => 'jeffio@116.85.48.221'])

{{-- deploy是给这个任务起的名字 --}}
@task('deploy')
    cd /www/wwwroot/sifou.com
    git pull origin master
    composer install
@endtask

执行任务,命令格式是envoy run 任务名

envoy run deploy

以上即可一键完成:

  1. 进入指定目录
  2. git拉取更新
  3. 安装composer包

这样一个简单的部署就完成了,极大降低了维护的操作成本。

参考

更多写操作请参考收下文档
Envoy详细文档

    原文作者:Jeff
    原文地址: https://segmentfault.com/a/1190000018461127
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞