Am un laborator rezident pe un server vCenter, laboratorul include 5 servere Windows și 3 Windows 10
De fiecare dată când rulez un registru de joc (orice registru de joc) în acest laborator, 2 erori apar în TASK [Gathering Facts]:
[AVERTISMENT]: Eroare la colectarea faptelor winrm: Nu puteți apela o metodă pe o expresie cu valori nule. La linia:15 char:17 +...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.Nu ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:  
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull la <ScriptBlock>, <No file>: linia 15 la <ScriptBlock>, <No file>: line  
13
[AVERTISMENT]: Eroare la colectarea faptelor factorilor: Test-Path: Accesul este refuzat La linia:10 char:17 + Test-Path -LiteralPath $facterPath +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: PermissionDenied: (\Domain.com\Sys... rtup\facter.exe:String) [Test-Path], UnauthorizedAccessException  
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError, Microsoft.PowerShell.Commands.TestPathCommand la <ScriptBlock>, <Fără fișier>: linia 10 la <ScriptBlock>, <Nu 
fișier>: rândul 3
Jurnalul complet:
SARCINA [Adunarea faptelor] ********************************************* **************************************************** **************************************************** *** calea sarcinii: /ansible/playbooks/copy_r10_files.yml:2
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm1.domain.com> ESTABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: Domeniul\hiddai pe PORTUL 5985 LA vm1.domain.com
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm2.domain.com> ESTABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORT 5985 LA vm1.domain.com
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
EXEC (prin înveliș pentru conducte)
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm3.domain.com> STABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORTUL 5985 LA srraalabjhqdb.r10.local
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
EXEC (prin înveliș pentru conducte)
<vm4.domain.com> ESTABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORT 5985 LA vm4.domain.com
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
EXEC (prin înveliș pentru conducte)
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm5.domain.com> ESTABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORT 5985 LA vm5.domain.com
EXEC (prin înveliș pentru conducte)
EXEC (prin înveliș pentru conducte)
[AVERTISMENT]: Eroare la colectarea faptelor winrm: Nu puteți apela o metodă pe o expresie cu valori nule. La linia:15 char:17 +...
$ansibleFacts.ansible_win_rm_certificate_expires = $_.Nu ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:  
InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull la <ScriptBlock>, <No file>: linia 15 la <ScriptBlock>, <No file>: line  
13
ok: [vm3.domain.com]
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm7.domain.com> ESTABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORT 5985 LA vm7.domain.com
ok: [vm4.domain.com]
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm6.domain.com> STABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORT 5985 LA vm6.domain.com
EXEC (prin înveliș pentru conducte)
ok: [vm1.domain.com]
ok: [vm2.domain.com]
redirecționare (tip: module) ansible.builtin.setup către ansible.windows.setup
Folosind fișierul modul /root/.ansible/collections/ansible_collections/ansible/windows/plugins/modules/setup.ps1
Canalizarea este activată.
<vm8.domain.com> ESTABILIȚI CONEXIUNEA WINRM PENTRU UTILIZATOR: DOMAIN\hiddai pe PORT 5985 LA vm8.domain.com
EXEC (prin înveliș pentru conducte)
EXEC (prin înveliș pentru conducte)
ok: [vm5.domain.com]
ok: [vm7.domain.com]
[AVERTISMENT]: Eroare la colectarea faptelor factorilor: Test-Path: Accesul este refuzat La linia:10 char:17 + Test-Path -LiteralPath $facterPath +
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: PermissionDenied: (\R10.local\Sys... rtup\facter.exe:String) [Test-Path], UnauthorizedAccessException  
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError, Microsoft.PowerShell.Commands.TestPathCommand la <ScriptBlock>, <Fără fișier>: linia 10 la <ScriptBlock>, <Nu 
fișier>: rândul 3
ok: [vm8.domain.com]
ok: [vm6.domain.com]
META: conducătorii de conducere
Dockerfile-ul meu este
DE LA centos:8
rădăcină UTILIZATOR
RUN yum check-update -y; \
    yum update -y; \
    yum install -y epel-release; \
    yum install -y gcc; \
    yum install -y libffi-devel; \
    yum install -y wget; \
    yum install -y git; \
    yum install -y python3; \
    dnf install -y python3-setuptools; \
    pip3 install --upgrade setuptools; \
    yum install -y python3-pip; \
    pip3 install --upgrade pip; \
    pip3 instalează pywinrm; \
    pip3 instalează PyVmomi; \
    # Ansible 2.11.x
    pip3 instalează ansible; \
    # Azure
    wget -q https://raw.githubusercontent.com/ansible-collections/azure/dev/requirements-azure.txt; \
    pip3 install -r requirements-azure.txt; \
    rm requirements-azure.txt; \
    ansible-galaxy collection install azure.azcollection; \
    # Colecția include modulele și pluginurile VMware suportate de 
    # Comunitatea Ansible VMware pentru a ajuta la gestionarea infrastructurii VMware
    pip3 install -r ~/.ansible/collections/ansible_collections/community/vmware/requirements.txt; \
    ansible-galaxy collection instalează community.vmware; \
    # Descărcă fișierul din HTTP, HTTPS sau FTP către nod
    ansible-galaxy collection instalează ansible.windows; 
    # chmod -R o-w /ansible;
    
CMD [ "/usr/sbin/init" ]
Fișierul meu all.yml include detalii winrm
---
# Detalii protocol WinRM
utilizator_ansible: DOMAIN\hiddai
parola_ansible: F01o3O4
ansible_connection: winrm
ansible_port: 5985
ansible_winrm_scheme: http
ansible_winrm_server_cert_validation: ignorați
ansible_winrm_transport: ntlm
ansible_winrm_read_timeout_sec: 60
ansible_winrm_operation_timeout_sec: 58
în ceea ce privește EROAREA 1: verificarea winrm într-una dintre mașinile din domeniu arată:
C:\Users\qa>winrm obține winrm/config
Config
    MaxEnvelopeSizekb = 500
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Client
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = adevărat [Sursa="GPO"]
        Auth
            De bază = adevărat [Sursa="GPO"]
            Digest = adevărat
            Kerberos = adevărat
            Negociază = adevărat
            Certificat = adevărat
            CredSSP = adevărat [Sursa="GPO"]
        Porturi implicite
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts [Sursa="GPO"]
    Serviciu
        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
        MaxConnexions = 300
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = adevărat [Sursa="GPO"]
        Auth
            De bază = adevărat [Sursa="GPO"]
            Kerberos = adevărat
            Negociază = adevărat
            Certificat = fals
            CredSSP = adevărat [Sursa="GPO"]
            CbtHardeningLevel = Relaxat
        Porturi implicite
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter = * [Sursa="GPO"]
        IPv6Filter = * [Sursa="GPO"]
        EnableCompatibilityHttpListener = true [Sursa="GPO"]
        EnableCompatibilityHttpsListener = true [Sursa="GPO"]
        Amprenta certificată
        AllowRemoteAccess = adevărat [Sursa="GPO"]
    Câștigători
        AllowRemoteShellAccess = adevărat
        IdleTimeout = 7200000
        MaxConcurrentUsers = 2147483647
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 2147483647
        MaxMemoryPerShellMB = 2147483647
        MaxShelsPerUser = 2147483647
Versiunea mea de container ansible este:
[root@ansible ansible]# ansible --version
[AVERTISMENT DE DEPRECARE]: Ansible va necesita Python 3.8 sau mai nou pe controler începând cu Ansible 2.12. Versiunea curentă: 3.6.8 (implicit, 19 martie 2021, 05:13:41) [GCC
 8.4.1 20200928 (Red Hat 8.4.1-1)]. Această caracteristică va fi eliminată din ansible-core în versiunea 2.12. Avertismentele de depreciere pot fi dezactivate prin setare 
deprecation_warnings=Fals în ansible.cfg.
ansible [nucleul 2.11.3] 
  fișier de configurare = /ansible/ansible.cfg
  cale de căutare a modulului configurat = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  Locația modulului python ansible = /usr/local/lib/python3.6/site-packages/ansible
  Locația colecției ansible = /root/.ansible/collections:/usr/share/ansible/collections
  locație executabilă = /usr/local/bin/ansible
  versiunea python = 3.6.8 (implicit, 19 martie 2021, 05:13:41) [GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
  versiunea jinja = 3.0.1
  libyaml = Adevărat
Cum pot rezolva acele erori?