ฉันมีห้องปฏิบัติการในเซิร์ฟเวอร์ vCenter ห้องปฏิบัติการประกอบด้วยเซิร์ฟเวอร์ windows 5 เครื่องและ windows 10 3 เครื่อง
ทุกครั้งที่ฉันรัน playbook (playbook ใดๆ) กับแล็บนี้ ข้อผิดพลาด 2 ข้อจะปรากฏขึ้นในงาน [รวบรวมข้อเท็จจริง]:
[คำเตือน]: เกิดข้อผิดพลาดเมื่อรวบรวมข้อเท็จจริงของ winrm: คุณไม่สามารถเรียกใช้เมธอดในนิพจน์ที่มีค่า Null ได้ ที่บรรทัด:15 ถ่าน:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.ไม่ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo :
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัดที่ 15 ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัด
13
[คำเตือน]: ข้อผิดพลาดเมื่อรวบรวมข้อเท็จจริงแฟกเตอร์: เส้นทางทดสอบ : การเข้าถึงถูกปฏิเสธที่บรรทัด:10 ตัวอักษร:17 + เส้นทางทดสอบ -LiteralPath $facterPath +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (\Domain.com\Sys... rtup\facter.exe:String) [เส้นทางทดสอบ], UnauthorizedAccessException
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.TestPathCommand ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัด 10 ที่ <ScriptBlock>, <ไม่
ไฟล์>: บรรทัดที่ 3
บันทึกแบบเต็ม:
TASK [รวบรวมข้อเท็จจริง] ********************************************* ************************************************** ************************************************** ***เส้นทางงาน: /ansible/playbooks/copy_r10_files.yml:2
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm1.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: Domain\hiddai บน PORT 5985 ถึง vm1.domain.com
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm2.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง vm1.domain.com
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm3.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง srraalabjhqdb.r10.local
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
<vm4.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง vm4.domain.com
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm5.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง vm5.domain.com
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
[คำเตือน]: เกิดข้อผิดพลาดเมื่อรวบรวมข้อเท็จจริงของ winrm: คุณไม่สามารถเรียกใช้เมธอดในนิพจน์ที่มีค่า Null ได้ ที่บรรทัด:15 ถ่าน:17 + ...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.ไม่ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo :
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัดที่ 15 ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัด
13
ตกลง: [vm3.domain.com]
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm7.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง vm7.domain.com
ตกลง: [vm4.domain.com]
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm6.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง vm6.domain.com
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
ตกลง: [vm1.domain.com]
ตกลง: [vm2.domain.com]
การเปลี่ยนเส้นทาง (ประเภท: โมดูล) ansible.buildin.setup ไปยัง ansible.windows.setup
การใช้ไฟล์โมดูล /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
เปิดใช้งานการวางท่อ
<vm8.domain.com> สร้างการเชื่อมต่อ WINRM สำหรับผู้ใช้: DOMAIN\hiddai บน PORT 5985 ถึง vm8.domain.com
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
EXEC (ผ่านตัวห่อหุ้มไปป์ไลน์)
ตกลง: [vm5.domain.com]
ตกลง: [vm7.domain.com]
[คำเตือน]: ข้อผิดพลาดเมื่อรวบรวมข้อเท็จจริงแฟกเตอร์: เส้นทางทดสอบ : การเข้าถึงถูกปฏิเสธที่บรรทัด:10 ตัวอักษร:17 + เส้นทางทดสอบ -LiteralPath $facterPath +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : PermissionDenied: (\R10.local\Sys... rtup\facter.exe:String) [เส้นทางทดสอบ], UnauthorizedAccessException
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.TestPathCommand ที่ <ScriptBlock>, <ไม่มีไฟล์>: บรรทัด 10 ที่ <ScriptBlock>, <ไม่
ไฟล์>: บรรทัดที่ 3
ตกลง: [vm8.domain.com]
ตกลง: [vm6.domain.com]
META: ตัวจัดการที่รัน
ไฟล์ Docker ของฉันคือ
จาก centos:8
รากผู้ใช้
RUN yum ตรวจสอบการอัปเดต -y; \
ยำปรับปรุง -y; \
ยำติดตั้ง -y epel-release; \
ยำติดตั้ง -y gcc; \
ยำติดตั้ง -y libffi-devel; \
ยำติดตั้ง -y wget; \
ยำติดตั้ง -y git; \
ยำติดตั้ง -y python3; \
dnf ติดตั้ง -y python3-setuptools; \
ติดตั้ง pip3 --upgrade setuptools; \
ยำติดตั้ง -y python3-pip; \
pip3 ติดตั้ง -- อัพเกรด pip; \
pip3 ติดตั้ง pywinrm; \
pip3 ติดตั้ง PyVmomi; \
# Ansible 2.11.x
pip3 ติดตั้งได้; \
#อาซัวร์
wget -q https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements-azure.txt; \
pip3 ติดตั้ง -r ความต้องการ -azure.txt; \
ข้อกำหนด rm-azure.txt; \
คอลเลกชัน ansible-galaxy ติดตั้ง azure.azcollection; \
# คอลเลกชันประกอบด้วยโมดูลและปลั๊กอิน VMware ที่สนับสนุนโดย
# Ansible VMware community เพื่อช่วยในการจัดการโครงสร้างพื้นฐานของ VMware
pip3 ติดตั้ง -r ~/.ansible/collections/ansible_collections/community/vmware/requirements.txt; \
คอลเลกชัน ansible-galaxy ติดตั้ง community.vmware; \
# ดาวน์โหลดไฟล์จาก HTTP, HTTPS หรือ FTP ไปยังโหนด
คอลเลกชัน ansible-galaxy ติดตั้ง ansible.windows;
# chmod -R o-w /ansible;
CMD [ "/usr/sbin/init" ]
ไฟล์ all.yml ของฉันมีรายละเอียด winrm
---
# รายละเอียดโปรโตคอล WinRM
ansible_user: DOMAIN\hiddai
ansible_password: F01o3O4
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
คำนึงถึงข้อผิดพลาด 1: การตรวจสอบ winrm ในเครื่องใดเครื่องหนึ่งในโดเมนแสดง:
C:\Users\qa>winrm รับ winrm/config
กำหนดค่า
MaxEnvelopeSizekb = 500
MaxTimeoutms = 60,000
MaxBatchItems = 32,000
MaxProviderRequests = 4294967295
ลูกค้า
ความล่าช้าของเครือข่าย = 5,000
URLPrefix = wsman
AllowUnencrypted = จริง [แหล่งที่มา = "GPO"]
รับรองความถูกต้อง
พื้นฐาน = จริง [ที่มา = "GPO"]
สรุป = จริง
Kerberos = จริง
เจรจา = จริง
ใบรับรอง = จริง
CredSSP = จริง [ที่มา = "GPO"]
พอร์ตเริ่มต้น
HTTP = 5985
HTTPS = 5986
TrustedHosts [ที่มา = "GPO"]
บริการ
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW; ;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
การเชื่อมต่อสูงสุด = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = จริง [แหล่งที่มา = "GPO"]
รับรองความถูกต้อง
พื้นฐาน = จริง [ที่มา = "GPO"]
Kerberos = จริง
เจรจา = จริง
ใบรับรอง = เท็จ
CredSSP = จริง [ที่มา = "GPO"]
CbtHardeningLevel = ผ่อนคลาย
พอร์ตเริ่มต้น
HTTP = 5985
HTTPS = 5986
IPv4Filter = * [ที่มา = "GPO"]
IPv6Filter = * [ที่มา = "GPO"]
EnableCompatibilityHttpListener = จริง [Source="GPO"]
EnableCompatibilityHttpsListener = จริง [Source="GPO"]
ใบรับรองนิ้วหัวแม่มือ
AllowRemoteAccess = จริง [แหล่งที่มา = "GPO"]
ผู้ชนะ
AllowRemoteShellAccess = จริง
IdleTimeout = 7200000
MaxConcurrentUsers = 2147483647
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 2147483647
MaxMemoryPerShellMB = 2147483647
MaxShellsPerUser = 2147483647
รุ่นคอนเทนเนอร์ ansible ของฉันคือ:
[root@ansible ansible]# ansible --version
[คำเตือนการปฏิเสธ]: Ansible จะต้องใช้ Python 3.8 หรือใหม่กว่าบนคอนโทรลเลอร์ที่เริ่มต้นด้วย Ansible 2.12 เวอร์ชันปัจจุบัน: 3.6.8 (ค่าเริ่มต้น 19 มี.ค. 2021, 05:13:41 น.) [GCC
8.4.1 20200928 (หมวกแดง 8.4.1-1)]. คุณลักษณะนี้จะถูกลบออกจาก ansible-core ในเวอร์ชัน 2.12 คำเตือนการเลิกใช้งานสามารถปิดใช้งานได้โดยการตั้งค่า
deprecation_warnings=เท็จ ใน ansible.cfg
ใช้งานได้ [core 2.11.3]
ไฟล์ปรับแต่ง = /ansible/ansible.cfg
เส้นทางการค้นหาโมดูลที่กำหนดค่า = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ตำแหน่งโมดูลหลาม ansible = /usr/local/lib/python3.6/site-packages/ansible
ตำแหน่งการรวบรวม ansible = /root/.ansible/collections:/usr/share/ansible/collections
ตำแหน่งปฏิบัติการ = /usr/local/bin/ansible
python version = 3.6.8 (ค่าเริ่มต้น 19 มีนาคม 2021, 05:13:41 น.) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
เวอร์ชันจินจา = 3.0.1
libyaml = จริง
ฉันจะแก้ไขข้อผิดพลาดเหล่านั้นได้อย่างไร