伴随dstack任务的cli使构建和部署应用程序变得容易。与dstack工厂集成。
dstack-tasks的Python项目详细描述
数据包任务
dstack任务是调用任务的集合,这些调用任务包装通用工具和服务,以便于部署代码。
包装的工具:
- docker - docker-compose - postgresql (backup and restore) - mysql (backup and restore) - awscli (s3 only for now) - git - python - django manage.py
这些任务设计为作为独立控制台脚本(dstack)或作为要在其中构建的任务集合运行 你的invoke和fabric2*任务。
安装
要安装,请使用pip:
pip install --pre dstack-tasks
安装后,您可以在项目目录中使用它。控制台脚本使用.env 配置自身的文件。目前,有些任务还需要环境变量才能使用。
示例用法
要查看任务列表,请使用dstack–list。要查看每个任务的帮助文本,请使用“帮助”。见下文 例如用法:
# Backs-up database dstack postgres backup --tag local-dev # Release new version of app and publish to S3 (requires ~/.aws/credentials to be set up dstack release_code --upload --not-static
dstack任务还可以用作调用和fabric2任务的基本库:
pip install https://github.com/fabric/fabric/archive/v2.zip
所有任务都可以在“干”模式或特定环境中运行。要查看任务将执行什么,请在dry中运行它 模式:
dstack dry postgres backup
要给任务附加上下文,可以使用特殊的任务加载环境变量 从.env文件:
dstack e release_code
例如,这可用于指定不同的github repo等。
注释
需要注意的是,dstack任务是在invoke之上构建的控制台脚本,因此主要用于 在本地执行任务。但是,dstack任务完全支持在结构中用作库(版本2) fabfile.py。只需将所有任务从fab文件中的dstack_tasks导入,即可在远程服务器上执行 使用类似于fab-h example.com e deploy–version 1.0.0的方法。
然而,在它的核心,invoke只是包装bash命令并在服务器上执行它们。这意味着对于高级用途 可能值得在服务器上安装dstack任务,以允许用python而不是python编写复杂的任务 猛击。因此,与其在远程服务器上通过fabric 2运行ls-al并试图捕获和解析输出,不如 可以使用适当的python包获取目录中的文件列表。
已知问题
dstack任务尚未包含可用于在服务器上调用自身的通用任务。目前还有 使用fabric2设置运行时环境变量以远程运行任务时出现问题。