首页 > 解决方案 > 如何在 Ansible Playbook 中循环遍历 Ansible 库存但针对 localhost 运行

问题描述

我在名为 [WEB] 的 hosts 文件中有一个清单,它由以下服务器组成。

[WEB] WEB01 WEB02 WEB03

当我声明 hosts: WEB 时,它将遍历每个服务器并在相应的服务器上本地运行以执行它需要的操作。

在运行 ansible-playbook FILE.YML 时,如何获取相同的清单,但在本地 Ansible 服务器上运行我想做的事情?例如,我想运行一个将 Web 服务器名称作为参数的 URI 命令,但如前所述,在本地 Ansible 服务器上运行它以 POST 到外部网站。这不需要在网络服务器本身上运行,但我想获取网络服务器名称(WEB01、WEB02、WEB03)并运行 URI 模块以发布到站点。

谢谢!

标签: ansible

解决方案


您可以使用 with items 遍历主机名变量并将其委托给本地主机。

或者

如果您不想对 web 组中的主机执行任何操作,则可以在清单中的变量中定义它,然后应用项目。将主机指定为主机:localhost


推荐阅读