hypernode / deploy-configuration
Hypernode 部署配置文件
Requires
- deployer/deployer: ^7.0
- psr/log: ^1.0||^2.0||^3.0
Conflicts
This package is auto-updated.
Last update: 2024-09-05 16:30:53 UTC
README
这份文档是指导如何在 Hypernode 平台上轻松设置自动化部署的指南。仓库包含以下内容:
- 配置对象
- 部署配置模板
- CI 配置模板
- 文档
里面有什么?
- 部署者配置主机 / 任务
- Hypernode 服务器设置
- 电子邮件 / New Relic 通知
- Cloudflare 清除
配置
- Composer 命令
require hypernode/deploy-configuration --dev
包。仅当您想在deploy.php
文件中获取自动完成时需要。 - 将一个
deploy.php
模板复制到项目的根目录下作为deploy.php
。您可以在 templates/deploy.php 中找到该模板。如你所见,一个$configuration
变量被分配了一个Configuration
类的实例。这个配置对象包含整个部署配置,可以根据您的需求使用 getter/setter 进行修改。根据您的用例更改配置,并参考文档以了解其他内置配置和任务。 - 设置您的 CI 服务器
- GitLab CI templates/.gitlab-ci.yml。
- Bitbucket templates/bitbucket-pipelines.yml。
- Github Actions templates/github-actions.yml。
- 对于 Magento 2,由于缺少配置,您的第一次构建将失败。登录到服务器,并根据您的项目文件编辑
app/etc/env.php
或app/etc/local.xml
。您可以在~/apps/<domain>/shared/
中找到这些文件。
构建步骤
1. 构建
构建应用程序,以准备在生产环境中运行。
您可以在以下方式定义需要在构建阶段执行的命令:
$configuration->addBuildTask('deploy:vendors');
此命令将在项目文件夹中执行 composer install
安装所有项目依赖项。
所有可能的命令都可以在 Hypernode\DeployConfiguration\Command\Build
命名空间中找到。请参阅 API 文档以了解用法和选项。
此仓库包含一些应用程序模板,它们指定了获取正确构建的应用程序所需的一般任务和它们的顺序。有关更多信息,请参阅应用程序模板。
2. 部署
将构建阶段构建的应用程序部署到给定的主机集。
首先,您需要定义您的环境 / 基础设施。
$stageAcceptance = $configuration->addStage('acceptance', 'acceptance.mydomain.com'); $stageAcceptance->addServer('appname.hypernode.io');
要为您的服务器设置额外的 SSH 选项(https://www.ssh.com/academy/ssh/config),您也可以提供这些。例如
$stage->addServer('appname.hypernode.io', [], [], ['LogLevel' => 'verbose']);
您可以在以下方式定义需要在 deploy
阶段执行的命令:
use function Deployer\{run, task}; ... task('magento:cache:flush', static function () { run('{{bin/php}} {{release_or_current_path}}/bin/magento cache:flush'); }); $configuration->addDeployTask('magento:cache:flush');
所有可能的命令都可以在 Hypernode\DeployConfiguration\Command\Deploy
命名空间中找到。请参阅 API 文档以了解用法和选项。
3. 配置平台服务 / 配置
可选地,您可以自动将一些服务和应用程序配置从您的 git 仓库设置到 Hypernode 平台
例如,您可以在您的 GIT 仓库中维护您的 cron 配置,并将其自动部署到特定的服务器。
$configuration->addPlatformConfiguration( (new PlatformConfiguration\CronConfiguration())->setStage('production') );
或者设置一个 Varnish 实例
$configuration->addPlatformService(new \Hypernode\DeployConfiguration\PlatformService\VarnishService());
对于所有可能的任务和配置,请参考API文档。
4. 部署后任务
部署后任务在部署成功后触发。例如,可以使用通知功能。
用法
$configuration->addAfterDeployTask(new \Hypernode\DeployConfiguration\AfterDeployTask\SlackWebhook());
5. 用于验收/集成测试的分支服务器
用法
$stage = $configuration->addStage('test', 'test.domain.com'); $stage->addBrancherServer('appname');
应用程序模板
我们提供了一些应用程序模板,这些模板定义了为特定应用程序类型执行的任务的常用集合。您可以使用这些模板,而无需手动指定每个任务。
可用模板
示例用法:$configuration = new ApplicationTemplate\Magento2(['nl_NL']);
环境变量
需要一些特定的环境变量才能允许部署镜像访问Git仓库或发送通知。
必需
SSH_PRIVATE_KEY
未加密的SSH密钥。该密钥需要有权访问远程服务器。可能是如下base64编码:cat ~/.ssh/deploy_key | base64
可选
DEPLOY_COMPOSER_AUTH
Composer auth.json内容。如果您需要访问特定的Composer仓库,如Magento的、第三方供应商的或您自己的私有Composer包仓库,则需要此文件。如果此环境变量不存在,则不会写入auth.json
,因此它是可选的。auth.json必须如下base64编码:cat auth.json | base64
HYPERNODE_API_TOKEN
用于项目的Hypernode API令牌。在support@hypernode.com请求一个。
测试
要测试您的构建和部署,您可以在本地运行hypernode-deploy
。
首先,请确保您已使用以下方式设置了所有必需的环境变量:
export SSH_PRIVATE_KEY=*** export DEPLOY_COMPOSER_AUTH=*** export HYPERNODE_API_TOKEN=*** .... etc
然后从项目的根目录开始构建/部署运行命令。
重复-e以包含构建过程中存在的所有环境变量
docker run -it \ -e SSH_PRIVATE_KEY -e DEPLOY_COMPOSER_AUTH -e HYPERNODE_API_TOKEN \ -v `pwd`:/build hypernode/deploy \ hypernode-deploy build -vvv docker run -it \ -e SSH_PRIVATE_KEY -e DEPLOY_COMPOSER_AUTH -e HYPERNODE_API_TOKEN \ -v `pwd`:/build hypernode/deploy \ hypernode-deploy deploy acceptance -vvv