gpt4 book ai didi

ruby - 如何在 chef 中定义一个函数/ Action /...,返回一个可以在例如中使用的值not_if

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:52 25 4
gpt4 key购买 nike

我目前正在学习 chef,我正在尝试以重复配置不会破坏任何东西的方式编写所有内容。

我在机器上部署了一个服务器,然后将一些代码加载到其中。下次配置时,我想先测试代码是否已经加载。我想以一种通用的方式来做,因为我在不同的 Recipe 中使用它。我的想法是定义一个函数/定义/等等。我可以调用测试条件并返回一个值的函数。我希望我可以在其他操作的 not_if 子句中使用此函数/...。

有没有办法在 chef 中使用定义/操作/提供程序/...来做到这一点,或者我需要在某处添加一些 ruby 色的东西吗?

最佳答案

Chef 中的资源都有条件执行。

not_if 和 only_if 语句可以将 shell 命令作为字符串或 ruby​​ block 来确定它们是否应该执行它们的操作。

user "myuser" do
not_if "grep myuser /etc/password"
action :create
end

您可能有一个节点属性并将其用作您的条件或调用返回 true 或 false 的 ruby​​ 方法。

template "/tmp/somefile" do
mode "0644"
source "somefile.erb"
not_if { node[:some_value] }
end

https://web.archive.org/web/20111120120013/http://wiki.opscode.com/display/chef/Resources#Resources-ConditionalExecution

关于ruby - 如何在 chef 中定义一个函数/ Action /...,返回一个可以在例如中使用的值not_if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7497691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com