gpt4 book ai didi

ansible - 如何从剧本中设置 Ansible 标签?

转载 作者:行者123 更新时间:2023-12-05 06:26:43 26 4
gpt4 key购买 nike

我想根据条件值跳过一些播放。我可以在一开始有一个任务,当满足条件时会跳过一些其他任务。

我知道我总是可以使用 set_fact 并将其用作运行其他 play(角色和任务)的条件,或者在我想跳过的每个 play 中直接评估所述条件。

但是,由于剧本已经有了一个标记系统,Ansible 中是否有类似 set_tags 的东西,我可以利用它来避免在我的剧本中添加条件并使我已经很重的东西膨胀剧本。

例如:

- name: skip terraform tasks if no file is provided
hosts: localhost
tasks:
set_tags:
- name: terraform
state: skip
when: terraform_files == ""

我想跳过的两部戏:

- name: bootstrap a testing infrastructure
hosts: localhost
roles:
- role: terraform
state: present
tags:
- create_servers
- terraform

[...]

- name: flush the testing infrastructure
hosts: localhost
roles:
- role: terraform
state: absent
tags:
- destroy_servers
- terraform

最佳答案

如果我理解正确,应该执行以下操作:

- name: bootstrap a testing infrastructure
hosts: localhost
roles:
- role: terraform
state: present
when: terraform_files != ""
tags:
- create_servers
- terraform

[...]

- name: flush the testing infrastructure
hosts: localhost
roles:
- role: terraform
state: absent
when: terraform_files != ""
tags:
- destroy_servers
- terraform

这与在角色中的每个任务上设置 when 子句基本相同。因此,每个任务都将被检查,但如果条件为假,则将被跳过。

关于ansible - 如何从剧本中设置 Ansible 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55771279/

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