知识点:
大多数的Ansible模块在设计时保证了幂等性,幂等性保证了Ansible脚本多次执行情况下的相同结果,尽可能的避免使用那些不能满足幂等性的模块。
什么是幂等性
幂等性(Idempotency):
幂等性是数学和计算机科学上一个常见的概念,多次执行产生的结果不会发生改变,这样的特性就被成为幂等性。幂等性是Idempotency的中文翻译,幂在数学上表示乘方结果,乘方的结果相等可以简洁地描述多次执行后得到相同结果这一概念的意思。
- 数学上符合幂等性的常见例子:
符合幂等性一元函数:
一元函数符合幂等性需要保证f(fx)) = f(x), 所以如下示例类型的函数都满足幂等性:
- f(x) = x: 恒等函数:输入和输出相等的函数
- f(x) = 常数: 常数函数:无论输入为什么,输出都是相同的结果
- 计算机操作上符合幂等性的常见例子:
HTTP的GET和PUT方法符合幂等性:
HTTP提供GET/PUT/POST等操作,GET方法和PUT方法均保证多次执行产生相同结果的这一特性,所以是符合幂等性的,而POST则不符合
Ansible模块与幂等性
Ansible包含众多的模块,大部分模块都能够保证操作的幂等性,即相关操作的