【问题标题】:Chef: Increment value in a file each time the cookbook is appliedChef:每次应用说明书时文件中的增量值
【发布时间】:2017-07-26 04:14:38
【问题描述】:

每次将食谱应用到服务器时,我的一个食谱都会在文件中回显一个静态值,例如

bash 'example' do
  code <<-EOF
    echo "1" > /path/file.txt
  EOF
end

我想在每次将说明书应用到服务器时增加这个值。所以下一次,/path/file.txt 将包含值“2”,然后是“3”...

【问题讨论】:

    标签: ruby chef-infra increment chef-recipe cookbook


    【解决方案1】:

    这真的很奇怪,因为它不会收敛,但不管你的船是什么:

    ruby_block 'weird thing' do
      block do
        path = '/whatever.txt'
        value = IO.read(path).to_i
        IO.write(path, (value + 1).to_s)
      end
    end
    

    【讨论】:

    • 谢谢!如果它按预期工作,我会试一试并将您的答案标记为已接受的答案。顺便说一句,在这种情况下,您所说的非收敛是什么意思?如;如果我将它同时应用于多个节点,每个节点都会有不同的值?
    • 更多信息请参见coderanger.net/thinking,但基本上当你运行两次配方代码时,第二次它不应该做任何事情。这段代码定义了动作,而不是目标状态。
    • 这纯粹是本地的,没有(非可怕的)方法可以在 Chef 中跨多个服务器进行自动增量,您可以改用 shard_seed。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 2012-12-11
    相关资源
    最近更新 更多