厨师自动化:全球计数器/变量?

时间:2016-09-01 23:42:59

标签: ruby chef chef-recipe

我有两个厨师烹饪书(可能更多),在执行时需要唯一ID (整数),最好是顺序

是否有可能拥有变量的中央存储,一个不是常量的全局变量?每次执行食谱的默认配方时,这可以递增吗?

1 个答案:

答案 0 :(得分:1)

纯粹的厨师没有办法做到这一点。通常的方法是在节点属性中预先分配ID号,或者使用节点名称的散列或其他一些稳定值。 node.name.hash % 1000会为您提供0到1000之间大致均匀分布的内容。不幸的是,名称哈希的设计并没有考虑到碰撞阻力,因此在较小的范围内(如0-256),它可能会产生不幸的连胜。

如果您真的想“正确”地执行此操作,请查看Consul和ZooKeeper等工具,这些工具可以在分布式情况下安全地发出序列号。