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.)