从tarballs原子地部署代码

tarball-deplo的Python项目详细描述


tarball deploy-从tarballs原子地部署代码

Build statusPyPI pageCode style: black

tarball-deploy是一个实用程序,用于帮助部署 (那件事)打包进焦油档案馆。它负责打开收到的档案, 以及原子地切换到新版本(使用一点符号链接魔法)。

用例

tarball-deploy是在考虑共享web托管服务的情况下编写的, 它通常授予您ssh访问共享服务器的权限,以及一个或多个 public_html目录,你应该把你的网站文件放在那里(例如。 静态html或php脚本)。此工具试图解决以下问题 问题:

  • 如何从CI/CD管道复制网站的新版本(您有 一个,对吧?)给你的服务器。
  • 如何原子地切换到新版本,以便站点处于 始终保持一致状态。
  • 如何在部署前后安全地调用附加钩子(f.ex. 重新启动web服务器),但不允许ci运行程序 在服务器上执行任意命令。

要求

  • 一个像样的类unix系统,它可以让您安装定制的python脚本
  • 一个tar实现。已知gnu tar和libarchive(freebsd)tar 工作。

安装

请记住,tarball-deploy应该安装在您的服务器上。这个 最简单的方法是用pip

安装
$ pip install tarball-deploy

但是,您可能希望或需要将其安装在virtualenv和symlink中 在你的某处。

用法

要使用tarball-deploy,首先需要将代码打包到tar存档中。 这超出了本项目的范围,但通常您可以执行以下操作:

$ tar cf release.tar index.html style.css images/**

然后您可以从下面继续您首选的部署方法。

从本地计算机部署

$ ssh your-username@your-host tarball-deploy --workdir=/your/remote/deployment/dir < release.tar

如果出现问题,可以快速恢复到以前的部署:

$ ssh your-username@your-host tarball-deploy --workdir=/your/remote/deployment/dir --rollback

从ci

部署

对于您要管理的每个网站,您都需要:

  • 为ci运行程序生成ssh密钥对
  • 在服务器上编辑.ssh/authorized_keys,并添加类似的内容:
    restrict,command="tarball-deploy --workdir=/your/remote/deployment/dir" ssh-rsa AAAAB3Nza...
    
  • 符号链接/your/remote/deployment/dir/current到您的网站所在的位置 服务器需要找到您的站点内容(通常是 ~/domains/example.com/public_html

调用其他钩子

pre-deploypost-deploy脚本放入 /your/remote/deployment/dir/hooks。它们需要标记为可执行文件。

学分

Piotr Śliwka创建

许可证

麻省理工学院

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

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本