unleashedtech/deployer-recipes

Unleashed Technologies使用的Deployer 7+功能

0.5.0 2022-10-25 18:14 UTC

README

Latest Version Software License Build Status

本包使用Deployer 7,支持由YAML或PHP定义的配方。

Deployer将按顺序导入配方。占位符将尽可能晚地替换为实际值。Deployer在运行时将查找deploy.phpdeploy.yaml

安装

所有配方路径都已调整为使用vendor目录中的文件,因此应该使用composer安装

composer require unleashedtech/deployer-recipes

使用

配方已组织以轻松支持任何软件的任何版本。它们对git仓库设置、部署位置和主机设置做出了一些假设。这些默认值仅在您尚未定义它们的情况下应用。请选择以下平台以获取更多信息。

请注意,任务假设相关阶段已经配置了数据库。如果您需要跳过所有数据库操作,可以将skip_db_ops设置为true 通过命令行

运行 vendor/bin/deployer.phar tree deploy 以查看deploy配方树。

运行 vendor/bin/deployer.phar deploy 进行部署。

运行 vendor/bin/deployer.phar 查看可用的配方。

前后钩子

Deployer支持在定义的任务之前或之后运行任务。定义在定义的任务之前和之后触发自定义任务非常简单。此功能可以添加到以下deploy.yaml的末尾,如下所示

tasks:
    foo:
        script:
            - "echo 'foo'"
    bar:
        script:
            - "echo 'bar'"

after:
    deploy:symlink: foo

before:
    deploy:unlock: bar

SSH主机

此包将根据全局配置值动态定义主机。它遍历environments变量中的CSV列表中的环境,为每个环境定义0个或更多主机。默认情况下,定义了productionstagingdev环境。对于每个环境,该包根据匹配的{environment}_webservers变量的整数值定义一系列主机(例如,根据production_webservers变量的值定义两个主机)。这些主机将根据其环境名称(或Deployer术语中的阶段)链接在一起。当您想部署到生产环境时,您可能需要运行类似于dep deploy stage=production的命令。默认情况下,该包假定有2个生产Web服务器。

config:
    ####
    production_domain: "production1.example"
    production_webservers: 3

配置SSH

Deployer定义的主机仅是别名。在执行过程中,Deployer将假设通过SSH内部定义的主机可用。您可以将主机添加到您的~/.ssh/config文件中,或者您可以添加Include指令,这些指令将加载其他文件提供的主要SSH配置。此类定义可以在自动化部署之前立即发生。

每个项目都可以提供自己的SSH配置。考虑在项目根目录中创建一个.ssh文件夹,并在其中创建一个config文件。

您可以手动包含特定项目的配置

Include ~/projects/foo/.ssh/config

您还可以使用模式自动包含多个文件夹中的项目配置

Include ~/projects/*/.ssh/config

参考文献