我有下面的伪代码要在 ansible 中实现。
changed = true
if (changed)
{
print("The first block executes")
}
else
{
print("The second block executes.")
changed = false
}
现在我需要将上述逻辑转换为ansible playbook,这样当我第一次运行playbook时,它会打印第一个块,并且所有后续调用都必须打印第二个块。我在下面尝试过,但没有成功。
hosts: localhost
become: true
vars:
changed: "true"
tasks:
- name: First block
debug:
msg: "The first block is printed"
when: changed == "true"
- name: Second block
debug:
msg: "The second block is printed"
- set_fact:
changed: "false"
如果这个用例可以在 ansible 中实现,有人可以指导我吗?主要的问题是,剧本是否可以设计成在第一次运行后改变其行为。如果我第一次运行剧本,它应该打印第一个块,但在该剧本的所有后续执行中,它应该只执行第二个块消息。