gpt4 book ai didi

chef-infra - Chef中收敛与幂等的区别

转载 作者:行者123 更新时间:2023-12-03 13:41:20 27 4
gpt4 key购买 nike

Chef中收敛和幂等的基本区别是什么?

最佳答案

收敛和幂等不是 Chef 特有的。它们通常归因于配置管理理论,尽管在其他领域也有使用,尤其是数学。

让我们从更基本的幂等开始。我们将忽略幂等的数学用法,而是关注配置管理人们谈论它时的含义。即:“同一 Action 的多次应用对系统状态没有副作用”。幂等操作的一个简单示例是 mkdir -p :

mkdir -p /var/lib/statedir/myapp

无论我们运行该命令多少次,都会创建该树。关于幂等操作的另一种表述方式是,“一遍又一遍地运行工具不会在第一次之后改变系统”。

现在将其与收敛进行对比。一般而言,融合意味着将[人或]事物聚集在一起。在配置管理中,融合意味着使系统状态符合定义的策略。也就是说,仅当需要进行更改时才对系统进行更改。收敛操作的一个简单示例是:
if [ ! -d /var/lib/statedir/myapp ]; then
mkdir -p /var/lib/statedir/myapp
fi

这是收敛的,因为我们只在所需目录不存在时才执行 mkdir 命令。我们也将其称为“测试和修复”操作。也就是说,我们测试我们正在管理的特定事物的当前状态,然后如果它不处于该状态,则使用特定的命令或操作对其进行修复。这就是 Chef 在幕后使用如下资源所做的事情:
directory '/var/lib/statedir/myapp' do
recursive true
end

我们(Chef)谈论这个的方式是,Chef 采取幂等 Action 将系统收敛到各种资源声明的状态。 Chef 中的每个资源都是声明性的,并对资源的当前状态进行测试,然后修复系统以匹配该状态。

为了更深入地了解 Chef 的工作原理,它在 Chef 运行中有一个“编译”阶段和一个“收敛”阶段。在“编译”阶段,它评估节点上的 Ruby 配方,并寻找它添加到“资源集合”中的资源对象。一旦它评估了所有的配方,它就会进入“收敛”阶段,在这个阶段它迭代资源集合,采取适当的行动将资源置于所需的状态,从而创建用户、写入文件、安装包,等等。

关于chef-infra - Chef中收敛与幂等的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30615588/

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