【发布时间】:2022-06-21 21:14:00
【问题描述】:
我尝试通过 ansible 在多个由 vCenter 管理的 ESXi 主机上挂载 NFS 数据存储。 目前我只能为一个 ESXi 主机执行此操作。 谁能帮我解决我的问题?
我从 ansible galaxy 获取 vmware 的模块:vmware_host_datastore 我的任务如下所示:
- name: "Check/Mount Datastores
vmware_host_datastore:
hostname: "{{ vcenter_name }}"
password: "{{ vcenter_pw }}"
username: "{{ vcenter_user }}"
datastore_name: "{{item.name }}"
datastore_type: "{{item.type }}"
nfs_server: "{{ item.server }}"
nfs_path: "{{ item.path }}"
nfs_ro: no
esxi_hostname: '{{ esxi_hostname }}'
state: present
delegate_to: localhost
loop: '{{ datastores }}'
我的 var 文件:
type: nfs
ds_host1: test
ds_host2: test2
datastores:
- name: ds_name
server: '{{ ds_host1}}'
path: /ds_name
type: '{{ type }}'
- name: ds_name
server: '{{ ds_host2}}'
path: /ds_name
type: '{{ type }}'
esxi_hostname: hostname1
但我需要为许多主机执行此操作。我怎样才能做到这一点?检查并挂载在一个主机上没有问题,但如果我给他第二个主机,我会收到错误,或者他是最后一个。
我必须如何在 ansible 上写这个,我需要一个带有我的主机列表的循环来完成我的任务? 谢谢你的帮助。 在此之前我没有使用 ansible 的经验,我需要全部学习 ;-)
【问题讨论】:
-
你把你的var文件放在哪里了?你如何加载它?你的库存是什么样的?你的完整剧本是什么样的?你如何启动剧本?如何“给他第二个宿主”?在您的终端上究竟“我收到错误还是采取最后一个错误”是什么样的?请edit您的问题,以便有人可以实际回复。在你这样做之前,你应该阅读How to ask 和How to create an MCVE。祝你好运。
标签: ansible vmware vsphere vcenter