首页 > 解决方案 > 如何在 ansible playbook 中添加带有单个用户的单个服务器?

问题描述

例如我们有 5 个服务器和 5 个用户我们需要通过 Ansible playbook 将单个用户添加到单个服务器。

我已经编写了剧本,但它在所有 5 个服务器中添加了所有 5 个用户。

但我需要在 server1 中添加 user1,在 server2 中添加用户 2,依此类推。

任何人都知道然后请帮助我

标签: ansibleansible-2.xansible-inventoryansible-factsansible-template

解决方案


您需要的是用户和服务器之间的显式映射。最后你需要有这样的字典:

config:
  - server1
    - user1
    - user2
  - server2
    - user2
    - user3
  - server3
    - user4

使用此字典,您可以遍历所有主机并将主机与 serverX 中的项目匹配,当匹配时,使用内部列表将相应的用户添加到 Ansible。字典可以是一个外部配置文件,你可以在 playbook 或其他任何地方阅读。

作为替代方案,您可以在清单中为每个主机定义主机变量。

all:
  hosts:
    server1:
      ansible_host: 10....
      users:
        - user1
        - user2
    server2:
      ansible_host: 10....
      users:
        - user3
    ...

在这种情况下,您将其定义为静态,并且您的剧本针对“all”组运行并遍历每个主机的 var“users”并配置该用户。

我认为,问题是您问题中的“个人”。你需要考虑这些信息的基础,是静态的还是动态的。今天是不是明天还有别的事...


推荐阅读