情况是这样的,
我有 100 个 Web 服务器、100 个 DB 服务器和 100 个后端服务器。它们全部由 Ansible 管理。我想使用 Ansible-pull 来减轻 Ansible 管理节点的负载并加快进程。
问题是,当我在每个节点上使用本地模式运行 ansible-pull 时,如何将特定角色应用于该节点。例如,Web 服务器节点如何知道它需要将 Web 服务器角色应用于自身?
我希望我已经表达清楚了。
答案1
您可以创建一个'hostname'.yml
文件,以便只有匹配的主机才会运行该.yml 文件。
示例 repo 可能包含:
db1.yml
db2.yml
db3.yml
然后,主机名为“db1”的服务器将仅运行该db1.yml
剧本。因此,在该剧本中,您可以调用它应该具有的所有任务和角色。
从手册页中:
ansible-pull 将根据主机的完全限定域名、主机主机名查找剧本,最后查找名为 local.yml 的剧本。