我已经定义了group_vars
根据其环境在众多主机上挂载 nfs 共享:
---
mounts:
- path: /home/user1
src: 10.0.0.1:/home/user1
fstype: nfs
state: present
- path: /home/user2
src: 10.0.0.1:/home/user2
fstype: nfs
state: present
在我的剧本中,我有以下任务来添加这些坐骑:
---
- hosts: clients
tasks:
- name: mounts
mount:
path: "{{ item.path }}"
src: "{{ item.src }}"
fstype: "{{ item.fstype }}"
opts: "{{ item.opts }}"
state: "{{ item.state }}"
with_items: "{{ mounts }}"
现在我想知道是否有一种简写方法可以实现同样的效果?例如
---
- hosts: clients
tasks:
- name: mounts
mount: "{{ mounts }}"
答案1
该模块无法在一次调用中创建多个挂载,因此您仍需要使用循环遍历每个单独的挂载定义。但您可以从单独的字典中一次性设置所有参数。
在我编写(简单)解决方案之前,您仍应注意,设置这样的任务参数是在 ansible 文档中不鼓励因为在某些情况下它可能不安全。这就是为什么您在使用以下代码时会收到警告的原因:
- hosts: clients
tasks:
- name: mounts
mount: "{{ item }}"
with_items: "{{ mounts }}"