使用Envoy實現一鍵部署項目

Envoy是一個composer擴展包,它的本質做用是代替你登陸遠程的目標服務器(下稱目標機)並執行一系列命令,它的執行環境要有事先裝有php與composer,但它不單單能在php項目裏起做用,緣由是前面提到的它的本質是幫你執行命令,而這命令不僅針對php的命令。所以你不只能夠把它看成部署項目的工具,甚至能夠是對目標機的簡單管理工具。
下面從本地機對目標機的登陸到envoy的安裝使用來分步介紹它。php

實現本地機與目標機的ssh密鑰登陸

假定目標服務器是sorgo@192.168.8.8laravel

#若是本地機的用戶還沒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文件git

{{-- 這是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 任務名web

envoy run deploy

以上便可一鍵完成:shell

  1. 進入指定目錄
  2. git拉取更新
  3. 安裝composer包

這樣一個簡單的部署就完成了,極大下降了維護的操做成本。服務器

參考

更多寫操做請參考收下文檔
Envoy詳細文檔composer

相關文章
相關標籤/搜索