Ansible VMware 모듈 병렬 실행
접속처는 vCenter 1대에 대해 복수의 VM을 조작하는 경우, 보통으로 Playbook을 쓰면 싱글 처리로 움직여 버리고 있었으므로 병렬로 움직이는 방식에 대해 기록해 둡니다.
1. VMware 모듈
이 예에서는 vmware_guest_file_operation 모듈을 예로 사용합니다.
 htp : // cs. 안시 bぇ. 이 m/안시 bぇ/ぁ st/모즈 s/vm해_구에 st_후에_오페라치온_모즈. html # vm 우리 굿 st ぃ
 1-1. 싱글 처리에 대해서
문서에 따라 Playbook을 만들어 봅니다.
---
- name: VMware Module Test
  hosts: localhost
  gather_facts: no
  tasks:
    - name: copy file to guest os
      vmware_guest_file_operation:
        hostname: vCenterIP or FQDN
        username: [email protected]
        password: secret
        validate_certs: no
        vm_id: "{{ item }}"
        vm_username: root
        vm_password: secret
        copy:
          src: ./testfile
          dest: /root/upload/testfile
          overwrite: False
      with_items:
        - devel
        - devel2
이 Playbook에서는 devel devel2에 대해 testfile를 VM의 게스트 OS에 복사합니다.
실제로 실행하면 다음과 같습니다.
 
화면 왼쪽 상단은 devel이고 오른쪽 상단은 devel2입니다.with_items 에서는 하나의 태스크가 끝나면 다음 태스크라고 하는 순서대로 실행되는 것을 알 수 있습니다.
이것이라고 하나하나 실행해 나가므로 VM수에 비례하여 시간이 걸립니다.
 1-2. 병렬 처리에 대해서
병렬 처리로 하는 예입니다.inventory 파일을 사용하여 병렬화해 봅니다.
다음은 inventory 파일의 예입니다.
[vms]
devel ansible_connection=local
devel2 ansible_connection=local
Playbook에서 vm_id를 매직 변수 inventory_hostname로 지정합니다.
---
- name: VMware Module Test
  hosts: vms
  gather_facts: no
  tasks:
    - name: copy file to guest os
      vmware_guest_file_operation:
        hostname: vCenterIP or FQDN
        username: [email protected]
        password: secret
        validate_certs: no
        vm_id: "{{ inventory_hostname }}"
        vm_username: root
        vm_password: secret
        copy:
          src: ./testfile
          dest: /root/upload/testfile
          overwrite: False
실제로 실행하면 병렬로 업로드되어 있음을 알 수 있습니다.
 
 2. 주의
vSphere API를 통해 파일을 게스트 OS로 복사할 때 VMware Tools가 실행 중이어야 합니다.
또한 한 번 vCenter/ESXi를 통해 게스트 OS에 복사하기 때문에 오버헤드가 크기 때문에 크기가 큰 파일이나 한 번에 대량 연결을 하면 부하가 우려됩니다.
※ 큰 크기의 파일의 복사는 정직 느립니다.
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Ansible VMware 모듈 병렬 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/sky_jokerxx/items/e32fc3a361ddb0615463
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
---
- name: VMware Module Test
  hosts: localhost
  gather_facts: no
  tasks:
    - name: copy file to guest os
      vmware_guest_file_operation:
        hostname: vCenterIP or FQDN
        username: [email protected]
        password: secret
        validate_certs: no
        vm_id: "{{ item }}"
        vm_username: root
        vm_password: secret
        copy:
          src: ./testfile
          dest: /root/upload/testfile
          overwrite: False
      with_items:
        - devel
        - devel2
[vms]
devel ansible_connection=local
devel2 ansible_connection=local
---
- name: VMware Module Test
  hosts: vms
  gather_facts: no
  tasks:
    - name: copy file to guest os
      vmware_guest_file_operation:
        hostname: vCenterIP or FQDN
        username: [email protected]
        password: secret
        validate_certs: no
        vm_id: "{{ inventory_hostname }}"
        vm_username: root
        vm_password: secret
        copy:
          src: ./testfile
          dest: /root/upload/testfile
          overwrite: False
vSphere API를 통해 파일을 게스트 OS로 복사할 때 VMware Tools가 실행 중이어야 합니다.
또한 한 번 vCenter/ESXi를 통해 게스트 OS에 복사하기 때문에 오버헤드가 크기 때문에 크기가 큰 파일이나 한 번에 대량 연결을 하면 부하가 우려됩니다.
※ 큰 크기의 파일의 복사는 정직 느립니다.
Reference
이 문제에 관하여(Ansible VMware 모듈 병렬 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sky_jokerxx/items/e32fc3a361ddb0615463텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)