跳转到主要内容

Python的服务器部署和配置管理

项目描述

https://travis-ci.org/yaybu/yaybu.png?branch=master https://coveralls.io/repos/yaybu/yaybu/badge.png?branch=master https://pypip.in/v/Yaybu/badge.png

Yaybu是一个基于推的配置管理工具,用Python编写,旨在帮助您驯服您的服务器。您可以使用简单的灵活的YAML-like语言描述您的基础设施,Yaybu会自动确定部署更新所需执行的操作。

所有文档均可在http://docs.yaybu.com找到。

Yaybu是全新的软件,请订阅yaybu-dev邮件列表,并告诉我们您是否在使用它,我们很高兴听到您的反馈。您可以在http://lists.yaybu.com找到邮件列表。

您还可以在irc.oftc.net的#yaybu频道找到我们。

yaybu的变更日志

3.1.1 (2013-11-07)

  • Computeimage参数添加验证。验证仅适用于实现了list_images API的libcloud NodeDriver类。

  • Computesize参数添加验证。验证仅适用于实现了list_sizes API 的 libcloud NodeDriver 类。在可能的情况下,Yaybu 会建议替代的大小。例如,对于拼写错误 m1.micro,它可以建议 t1.micro

3.1 (2013-11-06)

  • 如果 sharedTrue(默认值),则 Yaybu 不会删除它未创建的 DNS 区域中的记录。如果为 False,则它会移除配置中未声明的任何记录。

  • 添加对 MINIDNS(针对开发使用的一个简单本地 DNS 服务器)的支持。

  • LoadBalancer 部分的验证更好,如果您为枚举提供错误的值,将会得到更有用的错误信息。

  • 对所有基于 libcloud 的部分验证 driver.id,并在可能的情况下使用 difflib 提出最接近的驱动 ID。例如,对于 ROUTE52,建议 ROUTE53

  • 如果您不需要额外的参数,现在可以直接将驱动 ID 作为驱动参数传递。例如,对于 vmware:

    new Compute as myinstance:
        name: test1234
        driver: VMWARE
        <snip>
  • 修复了处理 YAML 类型的多行块时的许多错误。

  • 如果您安装了一个包,而您的索引已过时,Yaybu 会隐式执行 apt-get update 并在放弃之前重试安装。

3.0 (2013-09-04)

  • 基于 yay(yay3)的最新版本的新开发路线。

  • 重构提供者后端以使用“传输”(而不是启动与本地 yaybu 通信的远程 yaybu 实例)。

  • 重构 libcloud 代码以集成 yay3 的“图”——以便在需要时启动节点,并隐式排序。

0.2.4(未发布)

  • 添加了一个 yay.config.Config 的子类,该子类有助于将 yay 用于 Yaybu。

  • 至少依赖 0.11.4 版本的 libcloud,以避免在 S3 访问时挂起。

  • 删除对 boto 的依赖。

0.2.3 (2012-10-25)

  • 更新解决方案以避免与 boto(它有一个 HTTPResponse 子类)冲突。

  • 删除了一些无用的日志。

0.2.2 (2012-10-24)

  • 解决了 python2.6 中的一个错误,该错误导致某些 Amazon S3 操作挂起。

0.2.1 (2012-10-23)

  • 修复了 MANIFEST,以包括配方。

0.2.0 (2012-10-23)

  • 添加了处理云提供商上节点集合的新命令:addnodermnodestatusprovision

  • 注意:0.2.0 与早期版本不兼容

  • 将通过 gpg 流检索的“静态”文件内容标记为机密,以防止内容出现在日志中。

  • 依赖 yay >= 0.0.57 以获取最新的错误修复。

  • 为 Ubuntu 机器添加一个新的 yaybu bootstrap 以简化设置。如果您正在运行 Yaybu 的开发版本,则引导程序将是 GitHub 上的 master 分支上推送到最新代码。

0.1.28 (2012-10-13)

  • 添加一个新的 Checkout 提供程序,用于与 Vagrant 类似的环境。

    resources.append:
      - Checkout:
          name: /vagrant
          scm: mount

    此模式允许配方将 VM 中的共享文件夹(如 /vagrant)视为签出。然后可以在部署到真实服务器时将它们升级/替换为 git 或 subversion 签出。

    在签出中监视的任何文件都将被视为已更改。

0.1.27 (2012-08-14)

  • 修复了 yaybu.core.shell 中的 bug,其中通信实现等待文件句柄消失,即使底层进程已终止。

0.1.26 (2012-08-05)

  • 恢复先前的详细程度(将在 0.2.x 期间进行适当审查)。

0.1.25 (2012-08-02)

  • 修复默认详细程度,使其不是调试模式。

  • 使用最新 yay 版本的上下文日志功能,当 yay 解析失败时提供更好的错误信息。这些信息仅在调试级别时显示。

0.1.24 (2012-07-30)

  • 修复 etag 请求头,以便可以从远程模式下的 yaybu 中获取 etags。

0.1.23 (2012-07-30)

  • 修复 etag 注册表,以实际存储 etags。

0.1.22 (2012-07-22)

  • 现在依赖于 yay >= 0.0.53 以支持 etags(当文件未更改时减少网络流量)和支持从代码库中检索打包为 python eggs 的食谱。

  • 修复日志中的错别字。

  • 如果存在 `~/.yaybu/defaults.yay``~/.yaybu/defaults.yay.gpg`,则将其加载。

0.1.21 (2012-03-16)

  • 修复模拟错误。

0.1.20 (2012-03-16)

  • 在尝试查找不存在用户和组时,生成适当的异常。

  • 将“passthru”命令重构为“inert”命令,因为它更好地反映了意图。

  • 从 shell.execute 中移除“exceptions”选项。

  • #63 在用户缺失于 /etc/passwd 时在执行时模拟失败。代码重构以绕过此问题。

  • 实验性支持 Paramiko。

0.1.19 (2012-03-13)

  • 改进当前工作目录中脚本的验证。

0.1.18 (2012-03-13)

  • #66,修复降低权限的顺序,以便我们可以实际降低组权限。

  • #65,为 Execute 添加 umask 选项。

  • #64,在分配无效属性时进行适当的错误处理。

  • 在解析 shell 命令后,验证该命令是否存在(如果需要,在 PATH 上搜索)。

  • 确保 Yay 的错误在 ParseError 中包装,以便正确显示。

0.1.17 (2012-03-12)

  • Service 支持运行选项。这是一个应返回退出码 0 的命令,如果所有服务都在运行。如果与构建出的 isotoma.recipe.cluster 符号链接到 /etc/init.d 一起使用,它可能看起来像这样

    resources.append:
      - Service:
          name: cluster
          running: /etc/init.d/cluster running

0.1.16 (2012-01-16)

  • 修复替换时处理损坏链接的问题。

  • 修复 Link remove 策略中的损坏链接处理问题。

0.1.15 (2012-01-08)

  • 如果远程进程在我们 SIGKILL 它之前死亡,则吞咽任何错误。

  • RemoteRunner 对象现在可以在其 ssh_options 字典中设置 SSH 设置。例如

    runner.ssh_options["IdentitiesOnly"] = "yes"

0.1.14 (2012-01-01)

  • 更好的错误处理。正确检测资源重新定义和未定义资源类型的使用。Yay 节点图是懒加载的,因此 Yaybu 错误可以访问行号和其他元数据。在尝试连接到服务器之前,资源包被解析并进行了错误检查。

  • 现在在没有任何更改时使用退出代码 254。使用 253 用于未知错误。现在 255 是连接错误。

  • 重构模板处理以允许 {% extends "index.html" %}。您可以在 YAYBUPATH 上引用模板,并且您可以通过将新模板放在 YAYBUPATH 搜索的更高位置来覆盖模板。

  • Yaybu 破坏者现在有更多调用调试器的方式,包括与 pdb 的 pm()set_trace() 方法等效的方法。

  • 文件创建现在更安全:在写入内容之前设置权限。

  • 我们现在使用 Yay 0.0.41,因为它具有用于注入 Python 对象的更干净的 API。

0.1.13 (2011-12-02)

  • 初始 subversion 检出不再静默 - 以匹配 'svn up' 的行为 - 当您不确定检出是否挂起时,这对于大型检出很有用。

  • 在没有安装 subversion 的情况下使用 'svn' 将触发适当的错误而不是堆栈跟踪。这两个都有适当的异常来报告缺失的依赖项。

  • Service[] 现在解析 /sbin/status 的输出,以确定 upstart 作业是否正在运行。它考虑作业的目标,以确定是否需要调整作业。例如,我们可能想要启动一个作业,但该作业没有运行,而是在启动。这已经足够好了,所以 Yaybu 不会采取任何行动。

    实现正确的状态检测的副作用是,当尝试重新启动已停止的 upstart 作业时,现在可以直接启动作业。

  • 向命令行界面添加版本信息

  • Yaybu 用于通过 SSH 通信的协议已经增加了一些版本元数据。这将用于确保 Yaybu 客户端和目标之间更好的互操作性。

    警告 您需要确保您的客户端和服务器至少运行此版本,因为这(希望是最后一个)是协议破坏性更改。

  • 将一些日志输出重新分类为调试信息,以便在没有任何变化的情况下进行更安静的部署。

0.1.12 (2011-11-30)

  • 添加一个使用 rsync 的虚拟 Checkout 提供商。此功能的用例主要是 vagrant,您可以这样做:

    resources.append:
      - Checkout:
          name: /var/checkouts/my-site
          repository: /vagrant
          scm: rsync
          user: vagrant
    
      - Execute:
          name: buildout
          command: ./buildout
          cwd: /var/checkouts/my-site
          policy:
            execute:
              - when: sync
                on: Checkout[/var/checkouts/my-site]

    这里有两个优点:首先,您的生产配置可能从 Git 部署,但 Vagrant 总是给您一个 /vagrant 目录,而无需单独的 Git 检出。通过这个变更,您仍然可以使用 Checkout 资源来处理 /vagrant 源代码,保持您的配方尽可能相似。其次,您的 vagrant provision 将能够像真正的 Checkout 一样检测代码更改。例如,您可以在更改“checkout”中的特定脚本或资产时添加监视器来重启服务。

  • 目录的默认模式现在是 0755。

  • 通过不假设 sys.maxunicode 的值来改进跨平台支持。

  • 使用 yay 0.0.39 避免一些 pickle 问题。

0.1.11 (2011-11-19)

  • Subversion 检出现在将理解并愉快地使用作为 String 对象传递给它的数据。这意味着如果您使用 scm_password 属性,您的密码就不会泄露到日志中。

  • 我们现在依赖于 Yay 0.0.35 来改进 String API。

  • 子进程抽象原生支持 String 实例,并将任何机密信息隐藏在日志输出中。现在它还支持原生字符串,并将自动使用 shlex.split。

0.1.10 (2011-11-10)

  • Yabyu 现在依赖于 Yay 0.0.33 和改进的 Openers() API。这意味着可以从前 Yay 可以获取的任何位置获取 cookbook 资产,包括 http 和 https。

  • 此更改还意味着 Yay 加载也将尊重 YAYBUPATH,并且 http 内容可以位于 YAYBUPATH。

  • 修复 python-magic 回退 - 在之前的版本中,回退被反转,并声称所有文本都是二进制。

0.1.9 (2011-11-07)

  • 为 Vagrant provisioner 添加基本文档。

  • 当 'python-magic' 没有安装时,添加更好的回退。

0.1.8 (2011-11-04)

  • 允许在 RemoteRunner 上调用 set_interactive 以供批量处理用例使用。

  • 允许 API 用户使用 set_identity_file 设置特定的身份文件。

  • 将 Context 对象更改为将 user@host:port 解析为单独的变量,这修复了 ${yaybu.host} 包含用户和端口号详情的问题。

0.1.7 (2011-10-18)

  • 为那些从代码中驱动 Yaybu 而不使用 Yay 的人添加一些玩具。

  • 改进快速入门文档,强调幂等性。

  • 不再从 yaybu 包中导入 yaybu.resources 或 yaybu.providers。

  • yaybu 现在是一个命名空间包。

  • 您可以使用 yaybu.resources 和 yaybu.providers 入口点声明自己的资源和提供商。

0.1.6 (2011-07-26)

  • 一个名为 yaybu.host 的变量可以从您的配置中获取。

  • 添加 Git 支持。

  • 添加了最小的 RemoteRunner API。

  • –expand-only 仅显示资源键(更有用)

  • 更多测试覆盖率

  • 文档更新

  • 支持 ‘.import: - ${foo}’

0.1.5 (2011-07-06)

  • 日志现在通过 python logging 模块记录

  • 审计日志到 syslog 正常工作

  • 审计日志可通过 /etc/yaybu 配置

  • 添加 yaybu.core.debug 以协助远程模式下调试 yaybu

  • 可以通过 TEST_NETWORK=1 ./bin/test discover 运行网络测试

  • 新增 yaybu.harness 模块用于存放测试框架相关代码

  • 测试已移动到 yaybu 模块中的合理位置

0.1.4 (2011-06-16)

  • EventState 现在可以动态删除成功应用更新的内容,而不仅仅是最后

  • 移除 simlog API,并在模拟模式下尽可能地完整

  • 文件提供者更新加密文件时将不再记录差异

  • 每个使用 check_apply 的测试都将进行模拟测试

  • 更好地使用 python-magic:使用 mimetypes 并查找 text/

  • 使用更严格的 glob 来识别当前活动的 sysv 服务

  • EventState 现在根据 id 而不是 home 记录

  • 测试框架现在强制 check_apply 的幂等性

  • 测试框架现在自行管理 fakeroot

  • 修复长资源 ID 的日志问题

  • 更合理的默认 PATH

  • 不要将空文件视为二进制文件

  • 简化日志并修复差异日志

  • 从 preexec 函数设置环境

  • 锁定环境 - 不要从用户泄露环境

  • 对缺失 PID 文件更加宽容(服务提供者)

  • 在远程模式下有更好的错误处理

0.1.3 (2011-05-26)

  • RemoteRunner 修复

  • 修复远程中捕获错误

  • 修复传递 –resume 和 –no-resume 到远程

0.1.2 (2011-05-22)

  • 基本的 upstart、debian 和 'simple' 服务提供者

  • 捕获 yay.errors.Error

  • 添加 '实时日志' 功能以记录 shell 步骤(以便您可以查看 buildout 进度)

  • 添加监视可能由其他提供者更新的文件的选项

  • 更多测试

  • 测试环境自动处理 cow-shell 的竞争条件

  • 修复 User 提供者的注释字段

  • 修复 File/Directory 等的组和用户位

  • 现在资源被引用为 Type[name],否则组和用户很容易崩溃

  • Jinja 使用现在对 unicode 字典键更加宽容

  • 观察状态现在在失败时得以保留

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分布

Yaybu-3.1.1.zip (229.8 kB 查看散列)

上传时间 源代码

由以下支持