Sunt destul de nou cu Ansible, așa că s-ar putea să configurez lucrurile greșit
[Am un container Docker care rulează serviciul Ansible în CentOS8
Am un depozit Ansible care include fișierele Ansible (acesta este un depozit .Git]
Voința mea a fost să revin automat fiecare laborator (laboratorul este compus din 8 vms, 5 Windows Server 2016 și 3 Windows 10. Politica de includere DC pentru a activa winrm pe acele mașini) din serverul vCenter la un anumit instantaneu. Dar mai întâi încerc să: odată oprit aparatele laboratorului când sunt pornite și o dată porniți aparatele laboratorului când sunt oprite
Deci, eu (cu ajutorul lui ghid-roluri-ansible-explicate-cu-exemple):
- Am creat un rol cu
ansible-galaxie init
numele comenzii vcenter
(vezi arborele directoare de mai jos)
- Am creat câteva fișiere de activități vcenter în interior
sarcini
folder (vezi arborele directoare de mai jos). Iată un exemplu de poweroff.yml
și poweron.yml
fisiere de sarcini:
- nume: Setați starea unei mașini virtuale la oprire
community.vmware.vmware_guest_powerstate:
nume gazdă: „{{ vcenter_hostname }}”
nume de utilizator: „{{ vcenter_username }}”
parola: „{{ vcenter_password }}”
folder: „/{{ datacenter_name }}/vm/{{ folder }}”
nume: „{{ ansible_hostname }}”
# nume: „{{ guest_name }}”
validate_certs: nu
stare: oprit
forta: da
delegate_to: localhost
înregistrare: desfășurare
- nume: setați starea unei mașini virtuale la pornire folosind MoID
community.vmware.vmware_guest_powerstate:
nume gazdă: „{{ vcenter_hostname }}”
nume de utilizator: „{{ vcenter_username }}”
parola: „{{ vcenter_password }}”
folder: „/{{ datacenter_name }}/vm/{{ folder }}”
nume: „{{ ansible_hostname }}”
# moid: vm-42
validate_certs: nu
stare: pornit
delegate_to: localhost
înregistrare: desfășurare
- Acreditările vCenter furnizate în
vcenter\vars\main.yml
fișier, așa:
# fișier vars pentru vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: [email protected]
vcenter_parola: f#0$o#1$0o
nume_centru de date: FOO_Fighters
# datastore_name:
nume_cluster: FOO
folder: „/FOO/PRODUCT/DOMAIN.COM/”
- A inclus sarcinile în
tasks\main.yml
dosar cu sarcină-import
cheie, așa:
---
# fișier de sarcini pentru roluri/vcenter
- import_tasks: poweroff.yml
# - import_tasks: poweron.yml
# - import_tasks: revert.yml
# - import_tasks: shutdown.yml
- A creat un
toate.yml
în dosarul group_vars din biblioteca de inventare (nu știu dacă este un mod profesionist de a face așa ceva) care include toate detaliile winrm ca acesta:
---
Detalii protocol #WinRM
ansible_user: DOMAIN\utilizator
parola_ansible: f#0$o#1$0o
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
- A creat un
rever_lab.yml
manual care include rolul, ca acesta
---
- nume: reveniți la un laborator onpremis
gazde: toate
roluri:
- vcenter
Ale mele ansible.cfg
este cam asa:
[implicit]
inventar = /ansible/inventories
calea_rolurilor = ./roles:..~/ansible/roles
Am executat cu succes manualul de joc pentru a opri toate mașinile din laborator, apoi am „pornit” sarcina de pornire în rol, așa:
---
# fișier de sarcini pentru roluri/vcenter
# - import_tasks: poweroff.yml
- import_tasks: poweron.yml
# - import_tasks: revert.yml
# - import_tasks: shutdown.yml
Acum că toate mașinile laboratorului sunt oprite, executând manualul, dați următoarea eroare:
PLAY [revert vmware vcenter lab] ******************************************** *****
SARCINA [Adunarea faptelor] ********************************************* *************
fatal: [vm1.domain.com]: NEACCESIBIL! => {"schimbat": false, "msg": "ntlm:
HTTPConnectionPool(host='vm1.domain.com', port=5985): Reîncercări maxime depășite cu adresa URL: /wsman (Cauzată de NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb7ae4908d0>: Nu s-a putut stabili o nouă conexiune: [ Errno 111] Conexiune refuzată',))", "inaccesibil": true}
fatal: [vm2.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm: HTTPConnectionPool(host='vm2.domain.com', port=5985): Maximul de reîncercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3. Connection.HTTPConnection object at 0x7fb7ae487b00>: Nu s-a putut stabili o nouă conexiune: [Errno 111] Connection refud',))", "unreachable": true}
fatal: [vm3.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm: HTTPConnectionPool(host='vm3.domain.com', port=5985): Numărul maxim de încercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3. Connection.HTTPConnection object at 0x7fb7ae48acc0>: Nu s-a putut stabili o nouă conexiune: [Errno 111] Conexiune refuzată',))", "inaccesibil": true}
fatal: [vm4.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm: HTTPConnectionPool(host='vm4.domain.com', port=5985): Maximul de reîncercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3. Connection.HTTPConnection object at 0x7fb7ae48de80>: Nu s-a putut stabili o nouă conexiune: [Errno 111] Connection refud',))", "unreachable": true}
fatal: [vm5.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm:
HTTPConnectionPool(host='vm5.domain.com', port=5985): Numărul maxim de încercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb7ae41f080>: Nu s-a putut stabili o nouă conexiune: [ Errno 111] Conexiune refuzată',))", "inaccesibil": true}
fatal: [vm6.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm: HTTPConnectionPool(host='vm6.domain.com', port=5985): Numărul maxim de încercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3. Connection.HTTPConnection object at 0x7fb7ae41d7f0>: Nu s-a putut stabili o nouă conexiune: [Errno 111] Connection refud',))", "unreachable": true}
fatal: [vm7.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm: HTTPConnectionPool(host='vm7.domain.com', port=5985): Maximul de reîncercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3. Connection.HTTPConnection object at 0x7fb7ae428048>: Nu s-a putut stabili o nouă conexiune: [Errno 111] Connection refud',))", "unreachable": true}
fatal: [vm8.domain.com]: NEACCESSIBIL! => {"schimbat": false, "msg": "ntlm: HTTPConnectionPool(host='vm8.domain.com', port=5985): Max reîncercări a fost depășit cu adresa URL: /wsman (cauzată de NewConnectionError('<urllib3. Connection.HTTPConnection object at 0x7fb7ae425588>: Nu s-a putut stabili o nouă conexiune: [Errno 111] Connection refud',))", "unreachable": true}
JOACĂ RECAPITULARE ************************************************ ************************
vm1.domain.com : ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm2.domain.com : ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm3.domain.com : ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm4.domain.com: ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm5.domain.com: ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm6.domain.com : ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm7.domain.com : ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
vm8.domain.com: ok=0 schimbat=0 inaccesibil=1 eșuat=0 omis=0 salvat=0 ignorat=0
De ce sarcina de oprire funcționează bine și pornirea nu? Cum pot rezolva această problemă?
Depozitul meu:
C:.
ââââansible
â â ansible.cfg
â ââââinventare
â â ââââtest
â â âââânor
â â ââââonpremis
â â ââââdomain.com
â â â lab_j.yml
â â â lab_r.yml
â â ââââgroup_vars
â â all.yml
â ââââplaybooks
â â revert_lab.yml
â ââââroluri
â ââââvcenter
â ââââsarcini
â â principal.yml
â â poweroff.yml
â â poweron.yml
â â retur.yml
â â shutdown.yml
â ââââvars
â principal.yml
Inventarul meu lab_r.yml
- aceasta este o schemă parțială
---
toate:
copii:
rădăcină:
copii:
centru:
copii:
servere de aplicație:
gazde:
vm1.domain.com:
qservere:
gazde:
vm2.domain.com:
dbservers:
gazde:
vm3.domain.com: