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
Am un depozit Ansible care include fișierele Ansible (acesta este un depozit .Git]
Voința mea a fost să revine automat fiecare laborator din serverul vCenter la un anumit instantaneu
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 rever.yml
fișier de activitate:
- nume: Reveniți la un instantaneu
vmware_guest_snapshot:
nume gazdă: „{{ vcenter_hostname }}”
nume de utilizator: „{{ vcenter_username }}”
parola: „{{ vcenter_password }}”
datacenter: „{{ datacenter_name }}”
stare: revenire
snapshot_name: CLEAN
delegate_to: localhost
- 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
- 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
rever_lab.yml
manual care include rolul, ca acesta
---
- nume: reveniți la un laborator onpremis
gazde: toate
roluri:
- vcenter
Înainte de a executa manualul pentru a reveni la toate mașinile din laborator, am făcut o mică verificare
a sintaxei playbook-ului:
ansible-playbook playbooks/revert_lab.yml --syntax-check
Eroarea pe care am primit-o a fost:
[AVERTISMENT]: Ansible este rulat într-un director mondial de scriere (/ansible), ignorându-l ca sursă ansible.cfg. Pentru mai multe informații vezi
https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir
[AVERTISMENT DE DEPRECARE]: Ansible va necesita Python 3.8 sau mai nou pe controler începând cu Ansible 2.12. Versiunea actuală: 3.6.8 (implicit, 16 noiembrie 2020, 16:55:22) [GCC
4.8.5 20150623 (Red Hat 4.8.5-44)]. 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.
[AVERTISMENT]: Nu a fost analizat niciun inventar, doar localhost implicit este disponibil
[AVERTISMENT]: cu condiția ca lista de gazde să fie goală, doar localhost este disponibilă. Rețineți că localhost implicit nu se potrivește cu „toate”
EROARE! rolul „vcenter” nu a fost găsit în /ansible/playbooks/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/ansible/playbooks
Eroarea pare să fie în „/ansible/playbooks/revert_lab.yml”: rândul 5, coloana 5, dar poate
fi în altă parte în fișier, în funcție de problema exactă de sintaxă.
Linia ofensiva pare a fi:
roluri:
- vcenter
^ aici
Am decis să adaug ansible.cfg
la depozitul meu cu a calea_rolurilor
cheie:
[implicit]
inventar = /ansible/inventories
calea_rolurilor = /ansible/roles
# roles_path = ./roles:..~/ansible/roles
Am alergat din nou pe --verificare-sintaxă
comanda dar a primit aceeași eroare. Am încercat diferite tipuri de declarații pentru calea rolului - și am primit aceeași eroare. Desigur ansible-playbook
comanda nu a funcționat (cu același mesaj de eroare):
ansible-playbook playbooks/revert_lab.yml -i inventories/test/onpremis/domain.com/lab_r.yml
Asa de,
Cum pot să îmi recunosc rolul?
Cum fac posibil să rulez cu succes registrul meu de joc?
Este ansible.cfg relevant sau irelevant pentru „poveste”?
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