Điểm:1

count.index cho từ điển trong Ansible

lá cờ cn

Có thể tự động tạo vm10,vm11,vm12 trong tập lệnh bên dưới (dưới dạng Count.index được sử dụng trong terraform) không? Tôi muốn chuyển/xác định tên "vm" và có thể triển khai 3 vm với các tên khác nhau vm10, vm11 và vm12. Vui lòng đề xuất một cách, Cảm ơn

---
- máy chủ: Mục tiêu                         
  lọ:
    máy móc:                  
      v10:
        ghi nhớ: 1024
        vcpu: 1
      v11:
        ghi nhớ: 1024
        vcpu: 1
  nhiệm vụ:
  - tên: img cpy
    sao chép:
      src: /root/pri.qcow2
      đích: /test/{{ item.key }}.qcow2
      remote_src: có
    with_dict: "{{ máy }}"
  - tên: Nhập/Tải VM
    lệnh: >
             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: "{{ máy }}"
lá cờ in
lưu ý: `with_dict` không được dùng nữa. [Thay vào đó, hãy sử dụng `loop`](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-dict)
Alien Life Form avatar
lá cờ ru
@GeraldSchneider: theo https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html with_* không bị phản đối ("Chúng tôi không phản đối việc sử dụng with_ - cú pháp đó sẽ vẫn có hiệu lực trong tương lai gần.")
Điểm:1
lá cờ in

Sử dụng một khoảng không quảng cáo thay vì một lệnh. Bạn muốn 100 vms?

vms:
  máy chủ:
    vm[001:100]:
      ghi nhớ: 1024
      vcpu: 1

Điều này sẽ được hiểu là vm001,vm002,...,vm099,vm100. đại biểu nhiệm vụ tạo chúng vào máy chủ cục bộ, vì chúng không tồn tại khi tác vụ được chạy. Sau đó, bạn có thể chạy mô-đun thiết lập và chạy các tác vụ trực tiếp trên các máy ảo mới được tạo.

Playbook tương ứng sẽ trông như thế này:

---
- máy chủ: vms
  thu thập_sự kiện: không
  nhiệm vụ:
  - tên: sao chép hình ảnh qcow vào đường dẫn đích
    sao chép:
      src: /root/ovms/pri.qcow2
      đích: /root/ovms/test/{{ventory_hostname }}.qcow2
      remote_src: có
    ủy quyền_to: mục tiêu
  - tên: Nhập/Tải VM
    lệnh: >
            virt-install --name {{ inventory_hostname }} --memory {{ mem }} --vcpus {{ vcpu }} --disk /root/ovms/test/{{ inventory_hostname }}.qcow2,bus=sata -- nhập --os-biến thể chung --mạng mặc định --noreboot
    ủy nhiệm_to: mục tiêu
ranji avatar
lá cờ cn
Xin chào @GeraldSchneider, Cảm ơn bạn đã cập nhật! Nhưng câu hỏi của tôi là, Bây giờ chỉ vm10, vm11 và vm12 (3 vm's) đề cập đến chúng trong các vars với dict sẽ dễ dàng hơn. Nhưng nếu tôi muốn triển khai 100vm, tôi có nên đề cập đến 100 vmname không? hoặc chúng ta có thể làm một cái gì đó cho điều đó? (Giống như trong terraform, [link](https://emilwypych.com/2017/10/15/deploying-multiple-vsphere-vms-terraform/?cn-reloaded=1) có một cái gì đó giống như count.index+1)
lá cờ in
Nếu bạn cần chỉ định một cấu hình khác cho mọi máy ảo thì bạn không thể làm gì nhiều để tự động hóa việc này. Tất nhiên sẽ dễ dàng đánh số chúng khi tất cả chúng đều có cấu hình giống nhau.
ranji avatar
lá cờ cn
Có, chúng có cùng cấu hình và cùng một hình ảnh qcow2 đang được sử dụng cho tất cả hơn 100 vm
lá cờ in
Trong ví dụ của bạn, cấu hình khác nhau (bộ nhớ khác nhau)
ranji avatar
lá cờ cn
Xin lỗi đó là một sai lầm từ cuối của tôi. Tôi đã đề cập đến mem khác. Nhưng tất cả các vms sẽ có cùng cấu hình
lá cờ in
Tôi đã sửa đổi câu trả lời của mình bằng một giải pháp khác có vẻ phù hợp hơn.
ranji avatar
lá cờ cn
Tôi đã chỉnh sửa tác vụ ansible trong phần câu hỏi. Hàng tồn kho sẽ giúp tôi trong trường hợp này?
lá cờ in
Có, bạn có thể sử dụng nó cho điều đó. Giao nhiệm vụ cho máy mục tiêu.
ranji avatar
lá cờ cn
Cảm ơn rất nhiều Gerald, với khoảng không quảng cáo nó hoạt động!
ranji avatar
lá cờ cn
Hãy để chúng tôi [tiếp tục cuộc thảo luận này trong cuộc trò chuyện](https://chat.stackexchange.com/rooms/128455/discussion-between-shiva-ranjini-and-gerald-schneider).
ranji avatar
lá cờ cn
Xin chào Gerald, Playbook Ansible không hiển thị bất kỳ tiến trình nào sau khi thực hiện tác vụ. Tôi phải nhấn thủ công ctrl + C để thoát. Điều này chỉ xảy ra khi tôi tải vm ở trạng thái đang chạy. Nếu vm được tải ở trạng thái tắt, nó sẽ hiển thị tiến trình. NHIỆM VỤ [sao chép hình ảnh qcow vào đường dẫn đích] ****************************************** *************************** đã thay đổi: [vm-1 -> x.x.x.x] đã thay đổi: [vm-2 -> x.x.x.x] NHIỆM VỤ [Nhập/Tải VM] ********************************************* *************************************************** ************ [ERROR]: Người dùng bị gián đoạn thực thi
lá cờ in
Xin hỏi một câu hỏi mới cho điều đó. Bao gồm đầu ra dài dòng. Kiểm tra máy chủ mục tiêu để biết các quy trình treo.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.