清单中的主机与组变量
为主机附加连接和配置变量
清单中的主机与组变量 是 CoddyKit 上的免费 Ansible Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ansible Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ansible Academy 课程共包含 4 节课。
变量与主机相伴
清单中保存的不只是名称。您可以将变量附加到主机或组上,让任务针对不同机器进行调整。
INI 中的主机变量
在 INI 中,将 key=value 对直接写在主机名称后面的同一行。这些设置只适用于该主机。
web1.example.com http_port=8080连接变量最重要
ansible_user 和 ansible_host 等特殊变量会告诉 Ansible 如何连接,而不仅仅是要配置什么。
db1.example.com ansible_user=deploy ansible_port=2222覆盖实际地址
使用 ansible_host 提供一个易读的清单名称,同时在后台将其指向真实的 IP。
app1 ansible_host=10.0.0.21INI 中的组变量
[group:vars] 节会为该组中的每台主机应用同一个值。设置一次,即可到处共享。
[web:vars]
ansible_user=ubuntuYAML 清单中的变量
在 YAML 中,您可以向组添加 vars 块,或者为主机提供一个值映射,而不是空的冒号。
web:
vars:
ansible_user: ubuntu
hosts:
web1.example.com:每台主机专属的 YAML 变量
将值嵌套在主机键下,即可为单台主机提供自己的设置。空冒号的位置会变成一个映射。
hosts:
web1.example.com:
http_port: 8080主机优先于组
当主机及其所属组同时设置了同一个变量时,主机的值优先。具体设置始终会覆盖一般设置。
在任务中使用变量
使用双大括号引用清单变量。这里的任务直接从主机定义中读取 http_port。
- debug:
msg: "Serving on port {{ http_port }}"查看解析后的值
使用 --host 标志查看某台主机最终获得的全部变量。这对于调试实际生效的值非常有帮助。
ansible-inventory -i inventory.ini --host web1.example.com保持清单精简
少量内联变量没有问题,但大量配置之后应放入 group_vars 文件中。清单应关注有哪些主机,而不是具体如何配置。
快速检查
主机及其所属组都定义了 ansible_user。Ansible 会使用哪个值?
回顾
在 INI 或 YAML 中将变量附加到主机或组,即可设置连接和配置值。发生冲突时,主机优先于组。🔧
常见问题解答
「清单中的主机与组变量」课时是免费的吗?
是的 — 「清单中的主机与组变量」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ansible Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ansible Academy 课程共包含 4 节课。
「清单中的主机与组变量」这节课中我会学到什么?
为主机附加连接和配置变量 你通过在浏览器中直接运行的动手代码来练习 Ansible Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ansible Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ansible Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「清单中的主机与组变量」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ansible Academy 课中编写并运行代码吗?
能。每节 Ansible Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。