ฉันค่อนข้างใหม่กับ Ansible ดังนั้นฉันอาจกำหนดค่าผิดพลาด 
[ฉันมีคอนเทนเนอร์ Docker ที่ใช้บริการ Ansible อยู่ในนั้น
ฉันมีที่เก็บ Ansible ที่มีไฟล์ Ansible (นี่คือที่เก็บ .Git]
ความตั้งใจของฉันคือการ เปลี่ยนแต่ละแล็บในเซิร์ฟเวอร์ vCenter กลับเป็นสแน็ปช็อตเฉพาะโดยอัตโนมัติ 
ดังนั้นฉัน (ด้วยความช่วยเหลือของ คู่มืออธิบายบทบาทอธิบายพร้อมตัวอย่าง):
- สร้างบทบาทกับ 
ansible-กาแล็กซี่ init ชื่อคำสั่ง วีเซ็นเตอร์ (ดูแผนผังไดเร็กทอรีด้านล่าง) 
- สร้างไฟล์งาน vcenter ภายใน 
งาน โฟลเดอร์ (ดูแผนผังไดเร็กทอรีด้านล่าง) นี่คือตัวอย่างของ poweroff.yml ไฟล์งาน: 
- ชื่อ: ตั้งค่าสถานะของเครื่องเสมือนเป็นปิดเครื่อง
  community.vmware.vmware_guest_powerstate:
    ชื่อโฮสต์: "{{ vcenter_hostname }}"
    ชื่อผู้ใช้: "{{ vcenter_username }}"
    รหัสผ่าน: "{{ vcenter_password }}"
    โฟลเดอร์: "/{{ datacenter_name }}/{{ โฟลเดอร์ }}"
    # ชื่อ: "{{ ชื่อแขก }}"
    ชื่อ: "{{ ansible_hostname }}"
    validate_certs: ไม่
    สถานะ: ปิดเครื่อง
  delegate_to: localhost
  ลงทะเบียน: ปรับใช้
- ให้ข้อมูลรับรอง vCenter ใน 
vcenter\vars\main.yml ไฟล์เช่นนี้: 
# ไฟล์ vars สำหรับ vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: hiddai@foo.com
vcenter_password: f#0$o#1$0o
datacenter_name: FOO_Fighters
# datastore_name: 
cluster_name: FOO
โฟลเดอร์: '/FOO/PRODUCT/DOMAIN.COM/' 
- รวมงานใน 
งาน\main.yml ไฟล์ด้วย งานนำเข้า ที่สำคัญดังนี้ 
---
# ไฟล์งานสำหรับบทบาท/vcenter
- import_tasks: poweroff.yml
# - import_tasks: poweron.yml
# - import_tasks: revert.yml
# - import_tasks: shutdown.yml
- สร้าง 
all.yml ภายในโฟลเดอร์ group_vars ในไลบรารีสินค้าคงคลัง (ฉันไม่รู้ว่าเป็นวิธีที่มืออาชีพทำเช่นนั้นหรือไม่) ซึ่งมีรายละเอียด winrm ทั้งหมดดังนี้: 
---
#รายละเอียดโปรโตคอล WinRM
ansible_user: DOMAIN\user
ansible_password: f#0$o#1$0o
ansible_connection: winrm
ansible_port: 5985
ansible_winrm_scheme: http
ansible_winrm_server_cert_validation: ละเว้น
ansible_winrm_transport: ntlm
ansible_winrm_read_timeout_sec: 60
ansible_winrm_operation_timeout_sec: 58
- สร้าง 
revert_lab.yml คู่มือการเล่นที่รวมบทบาทเช่นนี้ 
---
- ชื่อ: ย้อนกลับห้องปฏิบัติการภายในองค์กร
  โฮสต์: ทั้งหมด
  บทบาท:
  - วีเซ็นเตอร์
ของฉัน ansible.cfg เป็นเช่นนี้:
[ค่าเริ่มต้น]
สินค้าคงคลัง = / ansible / สินค้าคงคลัง
roles_path = ./roles:..~/ansible/roles
ฉันดำเนินการ playbook เพื่อคืนค่าเครื่องจักรทั้งหมดในห้องปฏิบัติการ:
playbooks ansible-playbook/revert_vcenter_lab.yml -i สินค้าคงเหลือ/test/onpremis/domain.com/lab_r.yml
ข้อผิดพลาดที่ฉันได้รับคือ:
TASK [รวบรวมข้อเท็จจริง] ********************************************* ************************************************** ************************************************** ***
[คำเตือน]: เกิดข้อผิดพลาดเมื่อรวบรวมข้อเท็จจริงของ winrm: คุณไม่สามารถเรียกใช้เมธอดในนิพจน์ที่มีค่า Null ได้ ที่บรรทัด:15 ถ่าน:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.ไม่ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo :  
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัดที่ 15 ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัด  
13
ตกลง: [vm1.domain.com]
ตกลง: [vm2.domain.com]
ตกลง: [vm3.domain.com]
ตกลง: [vm4.domain.com]
ตกลง: [vm5.domain.com]
ตกลง: [vm6.domain.com]
ตกลง: [vm7.domain.com]
ตกลง: [vm8.domain.com]
TASK [vcenter : ตั้งค่าสถานะของเครื่องเสมือนเป็นปิดเครื่อง] ************************************ ************************************************** *********************
ร้ายแรง: [vm1.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM1'"}
ร้ายแรง: [vm2.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM2'"}
ร้ายแรง: [vm3.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM3'"}
ร้ายแรง: [vm4.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM4'"}
ร้ายแรง: [vm5.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM5'"}
ร้ายแรง: [vm6.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM6'"}
ร้ายแรง: [vm7.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM7'"}
ร้ายแรง: [vm8.domain.com -> localhost]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่ : 'VM8'"}
เล่น RECAP ************************************************ ************************************************** ************************************************** ************
vm1.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm2.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm3.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm4.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm5.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm6.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm7.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
vm8.domain.com : ok=1 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=0 ช่วยเหลือ=0 ละเว้น=0
ก) ฉันจะกำจัด เกิดข้อผิดพลาดเมื่อรวบรวมข้อเท็จจริง winrm ข้อผิดพลาด? (ดูเหมือนว่า playbook ไม่รู้จัก all.yml ไฟล์ที่ชนะ แต่ทำไม?) 
ข) ฉันจะแก้ไขข้อผิดพลาด "ไม่สามารถตั้งค่าสถานะพลังงานสำหรับเครื่องเสมือนที่ไม่มีอยู่..." ได้อย่างไร? (เราจะเห็นว่า playbook เข้าถึงเครื่องโดย fqdns ที่กล่าวถึงในไฟล์ lab_r.yml (จากไลบรารีสินค้าคงคลัง) แต่ข้อผิดพลาดเกี่ยวข้องกับชื่อเครื่องตามที่แสดงในแพลตฟอร์ม vCenter...)
พื้นที่เก็บข้อมูลของฉัน:
ค:.
ââââตอบได้
â â ansible.cfg
â ââââ สินค้าคงเหลือ
â â ââââทดสอบ
â â ââââคลาวด์
â â ââââในองค์กร
â â ââââdomain.com
â â â lab_j.yml
â â â lab_r.yml
â â ââââgroup_vars
â â all.yml
â ââââเพลย์บุ๊ค
â â revert_lab.yml
â ââââบทบาท
â ââââvศูนย์
â ââââงาน
â â main.yml
â â poweroff.yml
â â poweron.yml
â â return.yml
â â ปิดระบบ.yml
â ââââvars
main.yml
สินค้าคงคลังของฉัน lab_r.yml - นี่คือสคีมาบางส่วน
---
ทั้งหมด:
  เด็ก:
    ราก:
      เด็ก:
        ศูนย์กลาง:
          เด็ก:
            เซิร์ฟเวอร์แอป:
              เจ้าภาพ:
                vm1.domain.com:
            เซิร์ฟเวอร์:
              เจ้าภาพ:
                vm2.domain.com:
            เซิร์ฟเวอร์ฐานข้อมูล:
              เจ้าภาพ:
                vm3.domain.com: