我在使用 Ansible 角色 NFS 时有一个问题。
NFS 角色: https ://github.com/geerlingguy/ansible-role-nfs
我的情况是这样的:我们将创建一个虚拟机列表,这些虚拟机是 NFS 客户端。我们需要对 NFS 服务器进行访问控制。因此,我们根据上面的角色在 Ansible 库存中设置了一个名为 'nfs_exports' 的列表。
部分虚拟机将在完成工作负载后终止和退役。我们将重新运行包含 NFS 角色的剧本以更新 NFS 服务器设置。所以,有一个主机组'client_group',主机的数量是可变的。
如果有一个 VM,nfs_exports 列表将是:
nfs_clients: "{{ groups['client_group'] }}"
nfs_exports:
- "{{ nfs_dirs[0] }} {{ nfs_clients[0] }}(rw)"
- "{{ nfs_dirs[1] }} {{ nfs_clients[0] }}(ro)"
如果有两个虚拟机,
nfs_clients: "{{ groups['client_group'] }}"
nfs_exports:
- "{{ nfs_dirs[0] }} {{ nfs_clients[0] }}(rw) {{ nfs_clients[1] }}(rw)"
- "{{ nfs_dirs[1] }} {{ nfs_clients[0] }}(ro) {{ nfs_clients[1] }}(ro)"
如果有三个虚拟机,
nfs_clients: "{{ groups['client_group'] }}"
nfs_exports:
- "{{ nfs_dirs[0] }} {{ nfs_clients[0] }}(rw) {{ nfs_clients[1] }}(rw) {{ nfs_clients[2] }}(rw)"
- "{{ nfs_dirs[1] }} {{ nfs_clients[0] }}(ro) {{ nfs_clients[1] }}(ro) {{ nfs_clients[2] }}(ro)"
这在我们的情况下不好。因为每次虚拟机数量发生变化时,我都需要手动更改“nfs_exports”。
我需要动态构建列表“nfs_exports”中的字符串。因此,如果有一台 VM,“nfs_exports”中将只有一个客户端。如果有多个 VM,则所有 VM 都应自动包含在“nfs_exports”中。
谁能提供有关在“nfs_exports”中构建字符串的解决方案,而不是在“client_group”更改时手动更改“nfs_exports”?