【问题标题】:Check the file changed using chef-client检查使用 chef-client 更改的文件
【发布时间】:2018-06-13 21:39:03
【问题描述】:

我有以下场景:

假设我有配置 file A,它在服务器配置期间复制到任何位置示例:“/temp”使用厨师食谱,有一天有人修改了 2-3 参数在配置文件中。

是否可以找出此类文件并回滚到旧文件或将 A 文件再次复制到 /temp 位置。

谢谢

【问题讨论】:

    标签: chef-infra chef-recipe cookbook


    【解决方案1】:

    如果 file A 由您的厨师食谱管理,那么再次运行 chef-client 将更正文件中的任何偏差,使其内容与您厨师食谱中的任何内容一致。

    例如,如果您有:

    file '/tmp/fileA.txt' do
      content 'foo'
      action :create
    end
    

    然后有人将/tmp/fileA.txt 的内容更改为bar,然后在您下一次运行厨师客户端时,它会再次将内容更新为foo

    或者,如果您从食谱中提取文件,例如:

    cookbook_file '/tmp/fileA.txt' do
      source 'fileA.txt'
      action :create
    end
    

    然后有人更新/tmp/fileA.txt,下次你运行chef-client时,它会再次从你的食谱中提取文件。

    或者,如果您想使用本地存储的文件,您也可以这样做:

    remote_file '/tmp/fileA.txt' do
      source 'file:///tmp/fileAsource.txt'
      action :create
    end
    

    这里的file:///tmp/fileAsource.txt 语法是指本地文件系统文件/tmp/fileAsource.txt。如果内容与源文件中的内容不同,它将更新/tmp/fileA.txt

    【讨论】:

    • 感谢您的回复,这里有一个问题,厨师客户是否需要任何食谱来监控文件。
    • 我用一个例子更新了答案。我不是 100% 确定你在评论中问的是什么。如果配方没有该文件的资源,它将不会监视该文件。它只会管理你告诉它的事情。
    • 谢谢,我可以用文件名和路径来代替内容吗?
    • 这只是一个示例,但是您通常可以正常管理文件。不管是remote_filecookbook_filetemplate还是什么的。
    • 我是新来的厨师,你能否提供一个例子来比较 /tmp/fileA.txt 和 /root/fileA.txt 之类的两个文件,如果有人更改文件 /tmp/fileA。 txt 然后 chef-client 再次用 /root/fileA.txt 替换它。这对我很有帮助
    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2023-03-18
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多