ansible - 如何在 ansible playbook 中添加带有单个用户的单个服务器?
问题描述
例如我们有 5 个服务器和 5 个用户我们需要通过 Ansible playbook 将单个用户添加到单个服务器。
我已经编写了剧本,但它在所有 5 个服务器中添加了所有 5 个用户。
但我需要在 server1 中添加 user1,在 server2 中添加用户 2,依此类推。
任何人都知道然后请帮助我
解决方案
您需要的是用户和服务器之间的显式映射。最后你需要有这样的字典:
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”并配置该用户。
我认为,问题是您问题中的“个人”。你需要考虑这些信息的基础,是静态的还是动态的。今天是不是明天还有别的事...
推荐阅读
- matrix - 是否可以从投影矩阵中获得主点?
- python - AttributeError:“builtin_function_or_method”对象没有属性“翻译”
- prolog - 读取文件,然后将其转换为序言中的列表
- c# - 在具有多个应用程序池的 iis 服务器的根目录运行 C# MVC 应用程序
- xaml - ActionBar 不会消失
- javascript - 对象内的未定义值
- react-redux - React-Redux 的选择器
- javascript - 根据值过滤 JavaScript 深度嵌套的对象数组
- docker - Docker hub 自动构建因缺少变量而下降
- java - Java:在开关内创建的类的访问对象