![适用于大型服务器群的 Ansible-pull 配置管理](https://linux22.com/image/1528535/%E9%80%82%E7%94%A8%E4%BA%8E%E5%A4%A7%E5%9E%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BE%A4%E7%9A%84%20Ansible-pull%20%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86.png)
情况是这样的,
我有 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 的剧本。