我刚开始学习 Ansible。到目前为止,这很痛苦。我有这个代码来创建一个新的虚拟机。我按照这个教程。
---
- hosts: localhost
connection: local
tasks:
- vsphere_guest:
vcenter_hostname:1.1.1.12
username: root
password: pasword
guest: newvm001
state: powered_on
validate_certs: no
vm_extra_config:
vcpu.hotadd: yes
mem.hotadd: yes
notes: This is a test VM
folder: MyFolder
vm_disk:
disk1:
size_gb: 10
type: thin
datastore: storage001
vm_nic:
nic1:
type: vmxnet3
network: VM Network
network_type: standard
vm_hardware:
memory_mb: 256
num_cpus: 1
osid: ubuntu64Guest
scsi: paravirtual
esxi:
datacenter: 1.1.1.12
hostname: 1.1.1.12
但我一直收到这个错误。
[警告]:未找到主机文件:/etc/ansible/hosts
[警告]:提供的主机列表为空,只有本地主机可用
播放[本地主机]
任务 [设置] ************************************************************************* 确定:[localhost]
任务 [vsphere_guest] **************************************************************** 致命:[localhost]:失败!=> {“changed”: false,“failed”: true,“msg”: “找不到名为 9.1.142.86 的数据中心”}
没有剩余主机 ***************************************************************** [警告]:无法创建重试文件“testing.retry”。[Errno 2] 没有这样的文件或目录:“”
播放回顾 ************************************************************************* 本地主机:ok=1 已更改=0 无法访问=0 已失败=1
为什么会这样?什么是数据中心?如何找到合适的数据中心?主机文件和库存文件之间有什么区别?
答案1
您有一个大问题和一个小问题。
首先,主要问题是:您没有提供正确的datacenter
名称。
esxi:
datacenter: 1.1.1.12
这应该设置为 vSphere 中的数据中心对象的名称。(并且,如Ansible 文档ha-datacenter
,如果您正在与独立 ESXi 主机对话,则应将其设置为。)
小问题是您使用 IP 地址而不是主机名来获取连接信息。如何处理这个问题显而易见。