Puncte:1

count.index pentru dicționar în Ansible

drapel cn

Este posibil să generați automat vm10, vm11, vm12 în scriptul de mai jos (ca count.index folosit în terraform)? Aș dori să trec/defini numele „vm” și ar trebui să pot implementa 3 vm-uri cu diferite nume vm10, vm11 și vm12. Vă rugăm să sugerați o modalitate, mulțumesc

---
- gazde: Target                         
  vars:
    masini:                  
      v10:
        mem: 1024
        vcpu: 1
      v11:
        mem: 1024
        vcpu: 1
  sarcini:
  - nume: img cpy
    copie:
      src: /root/pri.qcow2
      dest: /test/{{ item.key }}.qcow2
      remote_src: da
    with_dict: „{{ mașini }}”
  - nume: Import/Load VM
    comanda: >
             virt-install --name {{ item.key }} --memory {{ item.value.mem }} --vcpus {{ item.value.vcpu }} --disk /test/{{ item.key }} .qcow2,bus=sata --import --os-variant generic --network default --noreboot
    with_dict: „{{ mașini }}”
drapel in
notă: `with_dict` este depreciat. [Folosiți `loop`](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-dict)
Alien Life Form avatar
drapel ru
@GeraldSchneider: conform https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html with_* nu este depreciat („Nu am depreciat utilizarea with_ - acea sintaxă va fi încă valabilă în viitorul previzibil.")
Puncte:1
drapel in

Utilizați un inventar în loc de un dict. Vrei 100 vms?

vms:
  gazde:
    vm[001:100]:
      mem: 1024
      vcpu: 1

Acest lucru va fi interpretat ca vm001,vm002,...,vm099,vm100. Delega sarcina de a le crea în localhost, deoarece nu există atunci când sarcina este rulată. După aceea, puteți rula modul de configurare și rulați sarcini direct pe mașinile virtuale nou create.

Caietul de joc corespunzător ar arăta astfel:

---
- gazde: vms
  gather_facts: nu
  sarcini:
  - nume: copiați imaginea qcow în calea țintă
    copie:
      src: /root/ovms/pri.qcow2
      dest: /root/ovms/test/{{ inventory_hostname }}.qcow2
      remote_src: da
    delegate_to: target
  - nume: Import/Load VM
    comanda: >
            virt-install --name {{ inventory_hostname }} --memory {{ mem }} --vcpus {{ vcpu }} --disk /root/ovms/test/{{ inventory_hostname }}.qcow2,bus=sata -- import --os-variant generic --network default --noreboot
    delegate_to: target
ranji avatar
drapel cn
Bună @GeraldSchneider, Mulțumesc pentru actualizare! Dar întrebarea mea este că, acum este doar vm10, vm11 și vm12 (3 vm) să le menționați în vars cu dict este mai ușor. Dar în cazul în care aș vrea să implementez 100vm, ar trebui să menționez totuși 100 vmname? sau putem face ceva pentru asta? (Ca și în terraform, [link](https://emilwypych.com/2017/10/15/deploying-multiple-vsphere-vms-terraform/?cn-reloaded=1) există ceva de genul count.index+1)
drapel in
Dacă trebuie să specificați o configurație diferită pentru fiecare VM, nu puteți face mare lucru pentru a automatiza acest lucru. Desigur, ar fi ușor să le numerotați atunci când toate au aceeași configurație.
ranji avatar
drapel cn
Da, au aceeași configurație și aceeași imagine qcow2 fiind folosită pentru toate cele 100+ vm-uri
drapel in
În exemplul dvs., configurația variază (memorie diferită)
ranji avatar
drapel cn
Îmi pare rău că a fost o greșeală din partea mea. Am menționat diff mem. Dar toate vm-urile vor fi aceeași configurație
drapel in
Mi-am modificat răspunsul cu o altă soluție care pare mai potrivită.
ranji avatar
drapel cn
Am editat sarcina ansible în secțiunea de întrebări. Mă va ajuta inventarul în acest caz?
drapel in
Da, îl poți folosi pentru asta. Delegați sarcinile la mașina țintă.
ranji avatar
drapel cn
Multumesc mult Gerald, cu inventar merge!
ranji avatar
drapel cn
Să [continuăm această discuție în chat](https://chat.stackexchange.com/rooms/128455/discussion-between-shiva-ranjini-and-gerald-schneider).
ranji avatar
drapel cn
Bună Gerald, Ansible Playbook nu arată niciun progres după executarea sarcinii. Trebuie să apăs manual ctrl + C pentru a ieși. Acest lucru se întâmplă numai când încărc vm-uri în stare de rulare. Dacă vm este încărcat în starea oprită, arată progresul. SARCINA [copiați imaginea qcow în calea țintă] ***************************************** ********************* schimbat: [vm-1 -> x.x.x.x] schimbat: [vm-2 -> x.x.x.x] SARCINA [Import/Încărcare VM] ******************************************** **************************************************** ************ [EROARE]: Utilizatorul a întrerupt execuția
drapel in
Vă rugăm să puneți o nouă întrebare pentru asta. Includeți rezultate detaliate. Verificați gazda țintă pentru procesele de suspendare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.