食品配送:一键同步你的Chef服务器

食品配送:一键同步你的Chef服务器

grocery-deliveryThe Grocery Delivery utility for managing cookbook uploads to distributed Chef backends.项目地址:https://gitcode.com/gh_mirrors/gr/grocery-delivery

持续集成

简介

欢迎来到食品配送——一个用于在版本控制系统(VCS)仓库和Chef服务器之间保持食谱、角色和数据包同步的软件。设想你有多个应保持一致的独立Chef服务器,它们都可以定时运行此脚本。该脚本采用适当的锁定机制,因此你可以每分钟运行一次。

然而,请注意以下几点:

  1. 假定你不利用版本或环境。
  2. 假定你想将提交到HEAD的任何内容立即上传。

食品配送高度可定制。许多设置可以通过简单的配置文件调整,并且它是可扩展的,让你可以根据需求进行扩展。

先决条件

食品配送是一种特定的管理Chef基础设施的方式,它假设你始终一致地遵循这些原则:

  • 检出即刻生效(这意味着需要在合并前进行代码审查)
  • 版本是无意义的(理想情况下,永远不要更改)
  • 你希望所有Chef服务器保持同步
  • 你关心的所有东西都来自版本控制。

我们建议启用属性白名单,以防止节点属性被保存回服务器。在Chef 11版之后的最新版本中,该功能已内置。对于较旧的版本,我们推荐使用whitelist_node_attrs库。

依赖项

  • Mixlib::Config
  • BetweenMeals

配置文件

默认配置文件位于/etc/gd-config.rb,但你可以通过-c参数指定其他位置。配置文件的工作方式与Chef的client.rb相同——有一系列关键词接受参数,其余部分是标准Ruby。

可用的配置选项包括但不限于: Berks开关(用于处理依赖项并上传食谱)、Berks二进制路径、Berks配置文件路径等。

插件系统

插件应该是一个定义了几个类方法的Ruby文件。它会在Hooks类中被class_eval()执行。

可以自定义以下函数:

  • 自定义preflight_checks(dryrun),在完成配置加载和插件加载但尚未进行任何操作之前运行。
  • 自定义prerun(dryrun),在获取锁、创建进程ID文件和初始化仓库对象后运行(但尚未修改仓库)。
  • 自定义post_repo_up(dryrun),在更新仓库后但在解析仓库之前运行。
  • 自定义postrun(dryrun, success, msg) 和 atexit(dryrun, success, msg),用于执行上传/删除本地服务器相关项后的操作,以及在程序异常退出时。

许可证

查看本仓库中的LICENSE文件。


食品配送提供了高效且灵活的方法来管理和同步你的Chef基础设施,适合那些追求一致性并注重自动化流程的团队。其简洁的配置、强大的插件系统和对版本控制的深刻理解,使其成为任何DevOps工具链的理想选择。不要错过这个机会,现在就尝试使用食品配送,提升你的运维效率!

grocery-deliveryThe Grocery Delivery utility for managing cookbook uploads to distributed Chef backends.项目地址:https://gitcode.com/gh_mirrors/gr/grocery-delivery

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

管吟敏Dwight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值