为postdeploy构建配方。

isotoma.recipe.postdeplo的Python项目详细描述


部署后

这个配方是给那些想轻松配置的人准备的 管理。它提供了完整配置管理系统的功能 (yaybu)但以一种与构建配置集成的方式。

您可以:

< Buff行情>
  • 使用它作为使用"模拟"模式检查任务是否完成的方法。如果 有人忘记在一个新的配置文件符号链接,模拟将显示你!
  • 监视在构建过程之外手动修改的文件。 将simulate命令连接到nagios并在退出代码不是254时发出警报 因为这意味着你的服务需要关注!
  • 显然,在构建之后,自动执行通常运行的任务 需要提升权限,例如设置日志轮换,启用apache 虚拟主机和设置cron作业。

当然,它可以被另一个配置管理工具调用,比如 当你准备升级时,木偶,厨师甚至是另一个yaybu实例。 这是一个让您的主服务器cm担心全局的好模式 而您的构建所附带的cm担心的是一些小细节。

基本用途

考虑一个简单的yaybu配置:

resources.append:
    - Execute:
        name: some-script
        command: ${buildout.buildout.directory}/bin/somescript
        user: root
        creates: ${buildout.buildout.directory}/stuff.cfg

你可以像这样把它连接到buildout中:

[buildout]
parts =
    postdeploy

[postdeploy]
recipe = isotoma.recipe.postdeploy
config = config.yay

查看配置的"扩展"形式-包含所有变量 填写-您现在可以(在运行buildout之后)执行:

$ ./bin/postdeploy show
resources:
  - Execute:
      name: /var/somedir/bin/somescript
      user: root
      creates: /var/somedir/stuff.cfg

这个命令可以选择使用 -v 来显示 配置。

您可以模拟应用配置时会发生什么,而不会对 使用 simulate命令的系统:

$ ./bin/postdeploy simulate
/---------------------------- Execute[some-script] -----------------------------
| # /var/somedir/bin/somescript
\-------------------------------------------------------------------------------

如果认为没有更改,则此命令的退出代码为254 必需,如果成功模拟应用了某些更改和任何内容,则为0 否则表示配置有问题。它是一个理想的监控 工具,因为它可以警告手动黑客或未完成的部署。

最后,您可以使用 apply 应用配置:

$ ./bin/postdeploy simulate
/---------------------------- Execute[some-script] -----------------------------
| # /var/somedir/bin/somescript
| Here is the stdout from your command
| ....
| ....
| Success!
\-------------------------------------------------------------------------------

强制参数

< DL>
配置
要应用于此计算机的Yay文件。它可以访问 你的建筑。

可选参数

< DL>
搜索路径
一组目录或url,用于搜索完全配置所需的资产 本网站。
历史轨迹

要监视的值的列表。当您有一个零件列表时,这很有用 是构建管理的,但在postdeploy中需要符号链接。使用历史记录 跟踪您可以确保将它们从系统中删除,如果它们是 从建筑中移除。

例如:

[buildout]
parts =
    ${parts:apache}
    postdeploy

[vhost1]
<snip>

[parts]
apache =
    vhost1
    vhost2

[postdeploy]
recipe = isotoma.recipe.postdeploy
history.track =
    parts:apache

在您的Yaybu配置中:

resources.append:
  .foreach vhost in history.parts.apache:
    - Link:
          name: /etc/apache2/sites-enabled/${buildout.sitename}-${vhost}
          policy: remove

第一次使用当前状态运行buildout数据文件是 创建,如果从构建中删除vhost2并运行postdeploy Yaybu将确保删除您的符号链接。这些数据持续存在于 即使忘记运行postdeploy,多个构建也是安全的。

有多种历史类型。默认值为删除。另一 例如 max 它将跟踪字段具有的最大值 曾经举办过。如果使用可缩放的 服务,并希望在更新时停止旧服务 构建:

[postdeploy]
history.track =
    environment:zopes max

然后,我可以在yaybu配置中执行类似的操作:

.foreach i in range(buildout.environment.zopes, history.environment.zopes):
  - Execute:
      name: stop-forgotten-zope-${i}
      command: kill-command zope${i}
      unless: some-manual-pid-check
历史数据库

通常不需要更改此设置。

因为这个配方必须支持Python2.4,所以它不能使用Yay作为它的主 数据存储。这是指向python工具架的路径。

默认值是 ${buildout:directory}/var/${partname}-history.db

历史.yay

通常不需要更改此设置。

历史数据.db 被持久化为yay,从这里加载 运行 bin/postdeploy

默认值是 ${buildout:directory}/var/${partname}-history.yay

可执行文件
要使用的python可执行文件。默认为调用 建造。这是为了支持python 2.4构建,因为yaybu需要2.6或 2.7、

存储库

此软件可从github上的配方存储库中获得。

许可证

2012 ISOtoma有限公司版权所有

根据apache许可证2.0版(以下简称"许可证")授权; 除非符合许可证,否则您不能使用此文件。 您可以在

< Buff行情> http://www.apache.org/licenses/license-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按"原样"分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

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

推荐PyPI第三方库


热门话题
Java:在迭代器类型(接口/实现类)之间转换?   java“Click Method”不断返回“Stale Element Exceoption”?   Android应用程序/进程的java生命周期?   java在发布消息时收到“无法识别的Windowssocket错误:0:recv失败”   java如何返回第二个值   java将基本授权头添加到一些请求中   使用改型安卓的java Post请求错误   PropertyPlaceHolderConfigure位置内的java Spring占位符   java是导入com的工具。谷歌。安卓gms。gcm无法解决,Google Play服务已经安装   java如何获取JSON数据的多个可选值?   java如何使用ApachePOI从word中的形状读取文本   安卓 java。Eclipse中的lang.NoClassDefFoundError,但不适用于Ant   如何在Java中用stream()将Map<v1,Set<v2>>转换为Map<v2,Set<v1>>   循环在java中循环时,如何从数组列表中删除某些内容?