jhoncytech/automatic-deployment

通过 Vagrant 实现的自动化部署脚本

安装: 18

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 2

分支: 1

开放问题: 0

语言:Shell

类型:项目

v1.0.2 2021-02-27 16:03 UTC

This package is auto-updated.

Last update: 2024-09-28 00:20:59 UTC


README

通过 Vagrant 实现的自动化部署脚本

Screenshot de la plantilla

 

要求

  • 必须在您的电脑上安装 Vagrant。

    您可以通过点击以下地址下载 Vagrant:https://www.vagrantup.com/downloads

    在 Vagrant 中,确保您已安装 vagrant-disksize 插件,如果没有,请在您的本地电脑上使用以下命令安装它。

    #> vagrant plugin install vagrant-disksize
  • 必须在您的电脑上安装 Virtualbox。

    您可以通过点击以下地址下载 Virtualbox:https://virtualbox.ac.cn/wiki/Downloads

  • 在远程服务器上,您需要将 vhosts 的文档根指向 /var/www/current,如下所示

    这是因为此脚本在部署期间创建了必要的文件夹
    其中最重要的是 current

    Vhost

     

    脚本生成如下结构,其中 current 指向
    期望的部署

    Deploy Version

     

    脚本在 /var/www/sql/ 文件夹中生成部署版本,文件名为 deploy-version

    Deploy Version

     

    所有版本都存储在 releases 文件夹中,您可以看到包含 deploy-version 的 html 文件所在的文件夹

    Releases

     

    同样,所有 .sql 文件都存储在 sql 文件夹中,您可以看到与部署版本对应的数据库版本

    SQL Files

     

    最后,您可以看到 scripts-data-access.sh 文件,该文件存储了脚本正常工作所需的所有必要数据。出于安全原因,此文件被加密。

    Script Data Access
  • 可选,如果您想使用 composer 来获取项目,可以安装 composer。

    您可以按照官方网站上的说明下载并安装 composer:https://getcomposer.org.cn/download/

 

描述

此脚本使用 shell 开发,允许您在本地电脑上使用 Vagrant 创建机器的同时将本地环境部署到远程生产环境,同样,脚本还能同时进行“部署和回滚”操作,并在 GitHub 账户中进行提交。

 

特性

使用此脚本,您可以

  • 使用 Vagrant 创建本地环境。
  • 通过在本地服务器上使用简单的命令 [deploy] 将您的本地项目部署到远程服务器。
  • 通过在远程服务器上使用简单的命令 [undeploy] 回滚到最后一次部署的版本。
  • 您可以选择在远程服务器上保留多少次部署。
  • 您可以通过在远程服务器上使用简单的 [undeploy] 命令从远程服务器上的部署列表中选择要回滚的版本。

 

使用的工具、软件和包

  • Denian 9
  • Vagrant 2.2.14
  • Virtualbox 6.1
  • Shell 脚本
  • PHP
  • Composer
  • Apache
  • MariaDB

 

如何使用

分步安装。

  1. 在 GitHub 上创建一个空的私有仓库,用于存储和控制项目部署。

    • 此步骤只需进行一次,因为之后不再需要。
    • 非常重要,您需要知道每次创建新项目时,仓库也必须也是新的。
  1. 获取项目。

    选择您想要的获取项目的方式
    选项 1 - 通过 composer 获取

    转到您想要创建项目的位置。

    #> cd C:\Users\User\Documents

    使用Composer创建项目。

    #> composer create-project jhoncytech/automatic-deployment my-web

    进入新创建的目录。

    #> cd my-web
    选项2 - 从GitHub仓库获取

    转到您想要创建项目的位置。

    #> cd C:\Users\User\Documents

    在您的电脑上创建一个目录,整个项目将在该目录下管理。

    #> mkdir my-web

    进入新创建的目录。

    #> cd my-web

    从GitHub克隆JhonnyGO的Automated Vagrant Deployment项目。

    #> git clone git@github.com:jhonnygo/automated-deployment.git .
  1. 编辑项目文件 [Vagrantfile]

    该文件位于文件夹 C:\Users\User\Documents\my-web\Vagrantfile

    您必须编辑以下必填参数非常重要

    • config.vm.hostname = "my-web" => 您希望用于本地服务器的名称
    • config.vm.network = "192.168.10.10" => 您希望用于本地服务器的私有IP
    • vb.name = "local-my-web" => Virtualbox的机器名称

    还有更多可选值,您可以根据需要修改它们。

  1. 编辑文件 [00-shell-script-config.sh]

    该文件位于文件夹 C:\Users\User\Documents\my-web\config\scripts\00-shell-script-config.sh

    您必须编辑以下必填参数非常重要

    • REMOTE_IP="" 必须是一个公共IP,因为它是远程服务器的IP。
    • LOCAL_IP="192.168.10.10" 必须是一个私有IP,它是Vagrantfile文件中使用的本地服务器IP。
    • GIT_USER_NAME="Jeff Smith" 执行提交的GitHub用户。
    • GIT_USER_EMAIL="jeff.smith@gmail.com" 执行提交的GitHub用户的电子邮件。
    • REPO_GITHUB_HTML="" 将部署的GitHub仓库的SSH格式URL。

    注意:如果您未指定某些密码,则密码将自动生成。

  1. 创建用于与项目仓库一起工作的SSH密钥对。

    转到以下SSH项目密钥文件夹: [ssh-keys]

    #> cd C:\Users\User\Documents\wy-web\config\ssh-keys
    #> ssh-keygen -t rsa -b 4096 -C "my-web-local"
    
    • 使用名称: ssh-key-local-test
    • 保持密码为空

    上述命令将创建您的SSH密钥对。

    重要:如果您已经有了自己的密钥对,您可以将它们复制并粘贴到这个目录中。

  1. 在远程服务器上添加您的本地服务器的公钥 [ssh-key-local-test.pub],以便本地服务器可以与远程服务器通信。

    在本地服务器

    #> cd C:\Users\User\Documents\wy-web\config\ssh-keys
    #> cat ssh-key-local-test.pub
    

    在远程服务器

    #> nano ~/.ssh/authorized_keys
    

    将您的本地服务器的公钥 [ssh-key-local-test.pub] 复制到文件末尾。

  2. 将您的本地服务器的公钥 [ssh-key-local-test.pub] 添加到之前创建的GitHub账户。

  1. 现在,是时候启动项目了。

    在远程服务器

    #> cd C:\Users\User\Documents\wy-web
    #> vagrant up
    

项目可用命令

本地服务器

  • 停止项目: #> vagrant halt
  • 启动项目: #> vagrant up
  • 销毁项目: #> vagrant destroy
  • 部署项目: #> deploy

远程服务器

  • 取消部署项目: #> undeploy

Screenshot de la plantilla

联系人

- Mail: jhonny@jhoncytech.com
- Web: https://jhoncytech.com
---
- Mail: contacto@jhonnygo.com
- Web: https://jhonnygo.com