0Pricing
DevOps Bootcamp · 课时

仅在条件为 True 时运行任务

根据布尔条件决定是否执行任务

仅在条件为 True 时运行任务 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

会做决定的任务

有时任务只应在特定情况下运行。when 关键字会根据您选择的条件决定任务是否执行。🚦

when 关键字

将 when 添加到任意任务中。如果表达式为真,任务就会运行;如果为假,Ansible 会跳过它并继续执行。

- name: Reboot the box
  ansible.builtin.reboot:
  when: reboot_required

不需要花括号

在 when 中直接写表达式即可。与字符串不同,您不需要使用双花括号,因为 when 已经处于 Jinja2 上下文中。

when: ansible_distribution == "Ubuntu"

真值变量

简单的布尔变量可以直接使用。如果 install_extras 为 true,任务就会运行;否则会静默跳过。

- name: Add extra tools
  ansible.builtin.package:
    name: htop
  when: install_extras

比较

条件可以比较值。==、!=、< 和 > 等运算符可以让您根据数字和字符串决定任务是否运行。⚖️

when: app_version == "2.0"

跳过与失败

跳过任务并不代表失败。在运行输出中,您会看到 skipping,而不是 ok 或 changed,并且 play 会继续执行。

否定条件

使用 not 可以反转一个测试。只有当服务尚未安装时,此任务才会运行。

when: not service_installed

是否已定义

您可以测试某个变量是否存在。is defined 测试可以避免未定义变量错误。

when: custom_port is defined

when 按主机运行

每台主机会单独进行判断。在同一个 play 中,某个条件可以在一台服务器上为真,在另一台服务器上为假。

保持条件简单

可读的条件更可靠。如果 when 变得过长,请拆分逻辑,或使用变量来表达其意图。

声明式,而非命令式

when 让 playbook 保持声明式:您描述适用的情况,由 Ansible 针对每台主机做出决定。不需要 if 代码块或分支脚本。🎯

快速检查

让我们确认一下 when 的行为。

回顾

when 关键字仅在表达式为真时运行任务。为假意味着跳过而不是失败,并且会针对每台主机分别判断。✅

常见问题解答

「仅在条件为 True 时运行任务」课时是免费的吗?

是的 — 「仅在条件为 True 时运行任务」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「仅在条件为 True 时运行任务」这节课中我会学到什么?

根据布尔条件决定是否执行任务 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「仅在条件为 True 时运行任务」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 仅在条件为 True 时运行任务
  2. 根据 OS 系列事实进行分支处理
  3. 使用 and / or 组合条件
  4. 注册结果,然后作出判断
← 返回 DevOps Bootcamp