另一个pythonic部署工具构建在fabric之上。

boss-cli的Python项目详细描述


< div >< BR>

凸台

特拉维斯分行<pypi欢迎光临

另一个pythonic部署工具构建在paramiko和factory之上。 像老板一样部署。

安装

啊!

配置

检查配置页。

自定义脚本

自定义脚本是可以直接在配置文件中定义的脚本/命令,无需在fabfile.py中编写任何一行python。如果您熟悉,它们与npm脚本类似。

您可以在boss.yml中的脚本字段下定义自定义脚本。

例如:

啊!

boss的开箱即用任务run可以用来在远程服务器上运行这些脚本,如下所示:

啊!

展开

<H3>1。远程源部署

这是一个通用的部署预置,其中远程主机还包含项目源代码和git存储库。deploy任务将使远程与源分支的最新更改同步。然后,它构建项目并在需要时重新启动服务。

这是通用的,与语言无关,因此可以用于部署任何类型的项目。您只需指定相关的build脚本即可在远程构建项目,如果需要重新启动服务,则还需要定义reload脚本。

在您的配置中,您需要将部署预置设置为remote-source

啊!

配置

用于远程源代码部署的boss.yml文件看起来类似于这样:

啊!

以上配置是特定于 NoDE.JS项目环境,但您也可以部署用PHP、Python、Java等其他语言构建的项目。所有您需要做的就是更改脚本<代码>安装< /COD>,<代码> Bug 重新加载

< H4>le任务

您可以使用fab--list查看远程源的可用任务预设

 ➜ fab --list

Available commands:

    build    Build the application.
    check    Check the current remote branch and the last commit.
    deploy   Deploy to remote source.
    prod     Configures the prod server environment.
    logs     Tail the logs.
    restart  Restart the service.
    run      Run a custom script.
    status   Check the status of the service.
    stop     Stop the service.
    sync     Sync the changes on the branch with the remote (origin).

展开

现在将应用程序部署到您在上面的stages中配置的prod服务器。您可以这样做:

 ➜ fab prod deploy

在这种情况下,这将部署默认的分支master。您还可以提供要部署的特定分支,如下所示:

 ➜ fab prod deploy:branch=my-branch
<H3>2。Web部署

此部署对于将web应用程序(react、angular、vue等)或静态文件部署到远程服务器非常有用。此预设假定静态文件通过远程主机(如nginx、apache等)上的web服务器提供。这里,源代码是本地生成的,只有distbuild上载并部署到服务器。

部署过程是零停机时间,就像capistrano

您需要在配置中将部署预设设置为web

deployment:
  preset: web

配置

用于web部署的boss.yml文件类似于这样:

$ pip install boss-cli==1.0.1
0

只要生成可以通过web服务器提供服务的内置静态文件(html、css、js、media),上述配置就可以用于任何类型的web项目。

您可以在boss.yml中定义两个脚本installbuild,分别安装项目依赖项和构建源代码。例如:如果您使用create react app创建了应用程序,则可以将其设置为npm installnpm run build,如上面的配置所示。

您还必须将build脚本的输出目录的位置设置为deployment.build\u dir。在我们的例子中,这将是build/目录。

可用任务

您可以使用fab--list查看此预设的可用任务

$ pip install boss-cli==1.0.1
1

远程设置

第一次,您可以使用设置任务配置远程主机以进行部署。

$ pip install boss-cli==1.0.1
2

这将在远程上提供的base_dir路径下创建必要的文件和目录。在我们的例子中,基本目录是/app/deployment

一旦设置任务完成,您将看到如下消息:

$ pip install boss-cli==1.0.1
3

现在,您需要将远程主机上的web服务器文档根目录设置为在base\u dir路径下创建的currentsymlink。当您部署应用程序时,此符号链接将指向最新版本。

Web服务器配置

如果您使用的是像nginx这样的web服务器,您可以这样设置文档根:

$ pip install boss-cli==1.0.1
4

展开

您可以使用deploy任务将应用程序部署到远程服务器。

在这里,首先deploy任务将触发installbuild脚本在本地生成项目,然后在deployment.build撸dir中配置的生成目录将被tar压缩并通过ssh上载到远程主机。

因此,要将当前本地源代码部署到prod服务器,您应该执行以下操作:

 ➜ fab prod deploy

如果您在项目中使用的是git,则需要确保您对要部署的分支进行了checkout并且是最新的。像这样,

$ pip install boss-cli==1.0.1
6 <H3>3。node.js部署

node.js项目部署。 即将提供更多信息、示例和文档:)。

灵感

特别感谢

特别感谢shirish shikhrakar用于徽标

贡献

欢迎各种捐助。阅读我们的贡献指南,了解我们的开发过程,如何提出减贫战略,报告缺陷并提出改进建议。

更改日志

请检查更改日志以获取完整的发布历史。

许可证

在麻省理工学院许可证下获得许可

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如果数组是单调递增或单调递减的,则它是单调的   java异步任务:doInBackground未完成   java数组逻辑错误   在Java桌面应用程序中加载应用程序属性   小程序windows上的Java控制面板如何与机器上安装的许多不同版本的Java一起工作?   许多循环的java循环策略   java Android Studio无法转到管理页面   java为什么集成测试的执行时间在SpringBoot2.2中显著增加?   java Grails dbmupdate失败:MySQLSyntaxErrorException:您的SQL语法有错误   字符串非常简单:用Java编写“”   java Wicket反馈消息和AjaxButton   java Oreo、默认短信应用程序和操作通过消息进行响应   Java将字符串中的\“替换为”   Java中的html意外URL请求结果   java在拼花文件格式中INT64和十进制(18,6)意味着什么?   java如何查看PDF文件   java在向powershell中的程序传递参数时遇到问题   继承如何在不同实现/类/etc的java中调用toString()   java Count可抓获的最大窃贼数