CloudStack 3.x 버전에서 기 생성된 VM에 NIC를 추가하는 방법

(3.x 버전에는 정상적인 방법이 존재하지 않으며, 4.1 버전부터 addNicToVirtualMachine 함수가 API로 제공되는 듯)

우회 방법으로 아래 assignVirtualMachine 함수를 활용할 수 있다.

http://download.cloud.com/releases/3.0.3/api_3.0.3/root_admin/assignVirtualMachine.html


위 assignVirtualMachine 함수의 networkids 파라미터를 활용함

※ 시나리오
1. 해당 VM Stop Instance
2. assignVirtualMachine 함수로 동일 도메인 내 다른 Account로 변경
3. 다시 원래의 Account로 변경하면서 networkids 파라미터 추가
4. Start Instance

아래는 샘플

TEST01 계정의 VM ID 1000번을 잠시 TEST02 계정으로 할당했다가
다시 TEST01 계정으로 되돌리면서
기존 Network ID 100번에 추가로 200번을 할당.

curl "http://127.0.0.1:8096/?command=assignVirtualMachine&account=TEST02&domainid=1&virtualmachineid=1000"

curl "http://127.0.0.1:8096/?command=assignVirtualMachine&account=TEST01&domainid=1&virtualmachineid=1000
&networkids=100,200"

야메 방법이긴 하나 테스트 결과 잘 되었음

※ 함정
1. Static NAT 설정된 경우 풀어줘야 한다.
2. Static NAT를 풀어버린 경우 Firewall 설정을 다시 해줘야 한다.