Score:1

count.index สำหรับพจนานุกรมใน Ansible

ธง cn

เป็นไปได้ไหมที่จะสร้าง vm10,vm11,vm12 โดยอัตโนมัติในสคริปต์ด้านล่าง (ตามที่ count.index ใช้ใน terraform) ฉันต้องการส่ง / กำหนดชื่อ "vm" และควรจะปรับใช้ 3 vm ที่มีชื่อต่างกัน vm10, vm11 และ vm12 ขอวิธีหน่อยครับ ขอบคุณครับ

---
- โฮสต์: เป้าหมาย                         
  วาร์:
    เครื่อง:                  
      v10:
        เม็ม: 1024
        วีซีพียู: 1
      v11:
        เม็ม: 1024
        วีซีพียู: 1
  งาน:
  - ชื่อ: img cpy
    สำเนา:
      src: /root/pri.qcow2
      ปลายทาง: /test/{{ item.key }}.qcow2
      remote_src: ใช่
    with_dict: "{{ เครื่อง }}"
  - ชื่อ: นำเข้า/โหลด VM
    คำสั่ง: >
             virt-install --name {{ item.key }} --memory {{ item.value.mem }} --vcpus {{ item.value.vcpu }} --disk /test/{{ item.key }} .qcow2,bus=sata --import --os-variant ทั่วไป --เครือข่ายเริ่มต้น --noreboot
    with_dict: "{{ เครื่อง }}"
in flag
หมายเหตุ: `with_dict` เลิกใช้แล้ว [ใช้ "ลูป" แทน](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-dict)
Alien Life Form avatar
ru flag
@GeraldSchneider: ตาม https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html with_* is not deprecated ("เราไม่ได้เลิกใช้ with_ - ไวยากรณ์นั้นจะยังคงใช้ได้ในอนาคตอันใกล้")
Score:1
ธง in

ใช้สินค้าคงคลังแทนคำสั่ง คุณต้องการ 100 vms?

vms:
  เจ้าภาพ:
    vm[001:100]:
      เม็ม: 1024
      วีซีพียู: 1

ซึ่งจะตีความได้ว่า vm001,vm002,...,vm099,vm100. ผู้รับมอบสิทธิ์ งานเพื่อสร้างมันใน localhost เนื่องจากไม่มีอยู่เมื่อรันงาน หลังจากนั้นคุณสามารถเรียกใช้ โมดูลการตั้งค่า และเรียกใช้งานโดยตรงบน VMs ที่สร้างขึ้นใหม่

Playbook ที่เกี่ยวข้องจะมีลักษณะดังนี้:

---
- โฮสต์: vms
  Gather_facts: ไม่
  งาน:
  - ชื่อ: คัดลอกอิมเมจ qcow ไปยังเส้นทางเป้าหมาย
    สำเนา:
      src: /root/ovms/pri.qcow2
      ปลายทาง: /root/ovms/test/{{ inventory_hostname }}.qcow2
      remote_src: ใช่
    delegate_to: เป้าหมาย
  - ชื่อ: นำเข้า/โหลด VM
    คำสั่ง: >
            virt-install --name {{ inventory_hostname }} --memory {{ mem }} --vcpus {{ vcpu }} --disk /root/ovms/test/{{ inventory_hostname }}.qcow2,bus=sata -- นำเข้า --os-ตัวแปรทั่วไป --เครือข่ายเริ่มต้น --noreboot
    delegate_to: เป้าหมาย
ranji avatar
cn flag
สวัสดี @GeraldSchneider ขอบคุณสำหรับการอัปเดต ! แต่คำถามของฉันคือตอนนี้มันแค่ vm10, vm11 และ vm12 (3 vm's) ที่พูดถึงพวกมันใน vars ด้วย dict นั้นง่ายกว่า แต่ในกรณีที่ฉันต้องการปรับใช้ 100vm ฉันควรพูดถึง 100 vmname's หรือไม่ หรือเราทำอะไรเพื่อสิ่งนั้นได้บ้าง ? (เช่นเดียวกับใน Terraform [ลิงก์](https://emilwypych.com/2017/10/15/deploying-multiple-vsphere-vms-terraform/?cn-reloaded=1) มีบางอย่างเช่น count.index+1)
in flag
หากคุณต้องการระบุการกำหนดค่าที่แตกต่างกันสำหรับทุก VM ไม่มีอะไรมากที่คุณสามารถทำได้เพื่อทำให้เป็นอัตโนมัติ แน่นอนว่าจะเป็นเรื่องง่ายที่จะนับเลขเหล่านี้เมื่อทั้งหมดมีการกำหนดค่าเหมือนกัน
ranji avatar
cn flag
ใช่ พวกเขามีการกำหนดค่าเดียวกันและอิมเมจ qcow2 เดียวกันที่ใช้สำหรับ 100+ vm ทั้งหมด
in flag
ในตัวอย่างของคุณ การกำหนดค่าจะแตกต่างกันไป (หน่วยความจำต่างกัน)
ranji avatar
cn flag
ขออภัยที่เป็นความผิดพลาดจากจุดสิ้นสุดของฉัน ฉันพูดถึง diff mem แต่ vms ทั้งหมดจะเป็น config เดียวกัน
in flag
ฉันแก้ไขคำตอบด้วยวิธีอื่นที่เหมาะสมกว่า
ranji avatar
cn flag
ฉันได้แก้ไขงาน ansible ในส่วนคำถามแล้ว สินค้าคงคลังจะช่วยฉันในกรณีนี้หรือไม่
in flag
ใช่คุณสามารถใช้มันได้ มอบหมายงานให้กับเครื่องเป้าหมาย
ranji avatar
cn flag
ขอบคุณมาก Gerald ด้วยสินค้าคงคลังที่ใช้งานได้ !
ranji avatar
cn flag
ให้เรา [ดำเนินการสนทนาต่อในการแชท](https://chat.stackexchange.com/rooms/128455/discussion-between-shiva-ranjini-and-gerald-schneider)
ranji avatar
cn flag
สวัสดีเจอรัลด์ Ansible playbook ไม่แสดงความคืบหน้าใด ๆ หลังจากดำเนินงาน ฉันต้องกด ctrl + C ด้วยตนเองเพื่อออก สิ่งนี้จะเกิดขึ้นก็ต่อเมื่อฉันโหลด vm ในสถานะกำลังทำงาน หาก vm โหลดอยู่ในสถานะปิด จะแสดงความคืบหน้า TASK [คัดลอกรูปภาพ qcow ไปยังเส้นทางเป้าหมาย] ***************************************** ********************** เปลี่ยน: [vm-1 -> x.x.x.x] เปลี่ยน: [vm-2 -> x.x.x.x] งาน [นำเข้า/โหลด VM] ******************************************* ************************************************** ************ [ข้อผิดพลาด]: ผู้ใช้ขัดจังหวะการดำเนินการ
in flag
โปรดถามคำถามใหม่สำหรับสิ่งนั้น รวมเอาต์พุตอย่างละเอียด ตรวจสอบโฮสต์เป้าหมายสำหรับกระบวนการหยุดทำงาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา