acquia / acsf-tools
Acquia Cloud Site Factory 的 Drush 命令行工具。
Requires
- php: >=8.0
- ext-zip: ^1.15
- composer/installers: ^1.0 || ^2.0
- phpmailer/phpmailer: ^6.1
- symfony/yaml: ^6.2
Requires (Dev)
- drush/drush: ^11
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-08-30 01:06:50 UTC
README
此工具由社区支持。Acquia 不提供任何直接支持此软件或提供任何关于其稳定性的保证。
摘要
此项目包含一组 drush 脚本,旨在简化管理 Acquia Cloud Site Factory 多站点平台。虽然 Drush 提供了许多通用工具以帮助 Drupal 管理,但多站点在一般情况和 ACSF 在特定情况下,在管理多个位于共享代码库中的站点时增加了大量复杂性。这些工具将 ACSF 多站点概念与基于 Drush 的管理便利性相结合。
安装和配置
安装
对于单一开发者或非常小的团队,您只需将此存储库克隆到您的用户 drush 目录中(例如,~/.drush)。
对于大型团队,我们建议将此项目作为 composer 库添加,例如 composer require acquia/acsf-tools
。如果您是 Composer 新手,请参阅 使用 Composer 管理 Drupal 网站依赖关系。
配置
将 acsf_tools_config.default.yml 重命名为 acsf_tools_config.yml 并将其保存在同一目录中。替换以下值
- 站点 ID:这是您的工厂的 ID。找到此字符串的最简单方法是在生产工厂的 URL 中。它是 URL 中紧随 'www' 之后的主域。例如,对于 "www.demo.acquia-cc.com",站点 ID 为 'demo'。
- Rest API 用户:这是您的工厂用户名,在登录工厂后显示在页眉中。
- Rest API 密钥:这是您的工厂 REST API 密钥。登录工厂后,点击您的用户名,然后点击 'API 密钥' 选项卡。
- Rest 工厂:这是一个包含您的生产、测试和开发工厂 URL 的数组。这应该包括开头的 'https://' 作为协议,并且不应包含结尾的反斜杠。
- 子域模式:这是一个可选配置,用于从生产中设置自定义域名,允许您定义自定义子域模式。例如,'foo-dev.coolsites.com',其中 '{subdomain}-{env}' 是默认值。
- 生产 Web:您主要生产服务器的服务器 ID。您可以在 cloud.acquia.com 仪表板中的服务器选项卡下找到它。例如,'web-1234'。
- 开发 Web:您的开发服务器的服务器 ID。您可以在 cloud.acquia.com 仪表板中的服务器选项卡下找到它。例如,'web-1234'。
注意:acsf_tools_config 文件故意通过 .gitignore 忽略。想法是大多数这些实用脚本应该只由具有适当权限的平台管理员在本地机器上运行。您不应将 API 凭证提交到您的存储库中。
工具
生成 Drush 别名
acsf-tools-generate-aliases (sfa): 此命令将查询ACSF REST API并本地存储您的工厂中所有站点的列表。然后,它将动态别名模板移动到您的drush文件夹。当drush缓存清除时,模板将加载站点列表,并为工厂中的每个站点提供一个生产/测试/开发别名。运行此命令第一次后,您应该将生成的 '*.aliases.drushrc.php' 文件(其中 * 是您的ACSF站点ID)提交到您的仓库。您将不再需要将任何其他内容提交到您的仓库,并且每次在ACSF中创建/部署新站点时都可以随时本地刷新站点列表。
获取部署标签
acsf-tools-get-deployed-tag (sft): 此命令将获取并显示工厂内站点的当前部署Git标签。例如,drush @coolsites.local sft dev
将显示开发环境中的当前部署标签。
备份站点
acsf-tools-sites-backup (sfb): 此命令将为工厂中的站点或站点列表创建备份。它接受单个站点ID、ID列表或“all”以备份所有站点。例如,drush @coolsites.local sfb dev all
将创建开发工厂中所有站点的备份。您可以通过运行 drush @coolsites.01live acsf-tools-list
获取工厂中站点ID的列表。
内容分期部署
acsf-tools-content-staging-deploy (sfst): 此命令将从生产工厂开始内容分期部署到以下环境之一,即开发或测试。您可以分期单个站点、站点列表或所有站点。从概念上讲,这与在Acquia Cloud Enterprise/Professional (ACE/ACP)中将数据库和文件从生产拖到Dev/Test的过程相同,只是ACSF的多站版本。
注意/警告:内容分期部署将覆盖底层环境中所有站点的当前状态。例如,如果您正在将生产站点分期到开发服务器,这将用生产数据库的内容覆盖当前在开发服务器上运行的数据库。另外注意,如果您只分期定义的站点列表,这将用此命令选择的站点替换该环境中当前部署的站点。如果您分期站点的列表与该环境中当前部署的站点不同,未包含在分期部署中的站点将实际上在该环境中被删除。
自定义域名分期
acsf-tools-stage-domains (sfdo): 工厂站点根据用户定义的ID获得默认URL,例如,'foo.coolsites.acsitefactory.com',其中站点ID为foo。在许多业务用例中,这些默认URL不受欢迎,我们需要自定义域名,例如,'foosite.com'。
此命令允许您将生产中定义的自定义域名分期到测试或开发环境,以保持一致性,即 'dev.foosite.com' 和 'test.foosite.com'。此命令将自动检测适当的URL模式,要么基于默认的 'www/test/dev' 模式,要么基于您在 acsf_tools_config.yml 中定义的模式。
注意:此脚本将为工厂中所有站点分期域名,但仅应用于实际存在于该环境中的站点。
ACSF 工具
注意:本节中的命令通过远程drush别名在工厂上远程运行,不需要REST API身份验证。例如,drush @coolsites.01dev sfl
将列出 'coolsite' 订阅的开发工厂中的所有站点。这是“始终本地运行”规则的唯一例外。这些命令同样需要通过drush的SSH访问,就像任何其他drush远程执行脚本一样。
- acsf-tools-list (sfl): 此命令将列出工厂中所有站点的详细信息(例如,名称、URL、别名)。
- acsf-tools-info (sfi): 此命令将列出工厂中所有站点的特定信息(例如,ID、名称、数据库名称、域名)。
- acsf-tools-ml (sfml): 此命令将对工厂中所有站点运行任何drush命令。例如,
drush @coolsites.01dev sfml st
将对工厂中所有站点运行drush状态命令并返回输出。这对于禁用清除缓存或禁用工厂中每个站点的单个模块非常有用。 - acsf-tools-dump (sfdu): 此命令将为工厂中所有站点创建数据库备份。
- acsf-tools-restore (sfre): 此命令将恢复工厂中所有站点的数据库备份。
- acsf-tools-analyze (sfa): 此命令将提取工厂站点上的模块、主题、实体和视图信息。它也适用于非ACSF的多站点安装。