cevich.touchstone
触石
启用 Ansible Galaxy 的角色,可轻松将一组剧本、角色或任务设为幂等。这对于某些顺序声明至关重要。例如,如果一个角色负责分区,另一个角色负责格式化。将来重新应用该顺序很可能会破坏您的数据。
要求
与默认的 Ansible 2.3+
相同
角色变量
touch_touchstone
:
当为真时,标记由
stone_name
确定的最终状态或完成状态。
stone_name
:
可选,识别字符串,用于在多个最终状态需要跟踪时。例如多个剧本。默认值为
.touchstone
。
touchstone_filepath
:
可选,触石将被检查或写入的目录路径。必须是一个永久的可写目录,即不能是基于
tmpdir
的/tmp
。无论触石是否被应用,都会在此目录中创建/检查锁文件。
stone_touched
:
布尔值,在角色执行过程中设置,以反映当前触石状态。当为
True
时,表示该“石头”在过去至少被触碰过一次。
touchstone_template
:
可选,用于生成触石文件内容的 jinja2 模板的完整路径。
依赖关系
具有唯一 /etc/machine-id 的基于 systemd 的机器。
示例剧本
- hosts: all
roles:
- role: cevich.touchstone
- role: something
when: not stone_touched
- role: another_thing
when: not stone_touched
- role: final_thing
when: not stone_touched
- role: cevich.touchstone
touch_touchstone: True
许可证
轻松将一组剧本、角色或任务设为幂等。版权所有 (C) 2017 Christopher C. Evich
本程序是自由软件:您可以根据自由软件基金会发布的 GNU 通用公共许可协议的条款重新分发和/或修改它,或在您选择的情况下,任何更高版本。
本程序以希望能有用的方式分发,但不提供任何担保;甚至不提供适销性或特定用途适用性的默示担保。有关详细信息,请参见 GNU 通用公共许可证。
您应该收到了一份 GNU 通用公共许可证的副本。如果没有,请访问 https://www.gnu.org/licenses/。
作者信息
自 Windows 98 以来,在 Linux 上制造麻烦和挑起混乱
持续集成
Easily make sets of plays, roles or tasks idempotent.
ansible-galaxy install cevich.touchstone