본문으로 바로가기
반응형

아래 내용은 RHEL 7.7이 설치된 호스트서버에 kvm에 vm을 생성하는 playbook입니다.

qcow2파일이 있는 상태에서 vm 생성시키는 playbook입니다. 

 

 

# 특이사항

virt-install 명령을 통해 Linux iso를 마운트해서 vm을 생성시, VM의 OS 설치를 완료하여 재부팅하거나 혹은 수동으로 재기동 또는 서버의 전원을 Off하지 않으면 해당 play에서 멈춰있기 때문에 hk-director.qcow2파일을 만들어서 해당 파일로 VM을 생성하는 playbook 내용임을 참고해야합니다.

 

 

1. tasks/main.yml

[root@hk-controller vm]#cat tasks/main.yml
---
- name: create VMs
  hosts: kvmhost
  become: true
  vars_files:
  - /root/ansible-playbook/kvm/roles/vm/vars/vms.yml

  tasks:
    - name: get VM disks
      command: "ls {{ vm_location }}"
      register: disks
      changed_when: "disks.rc != 0"

    - name: get list of VMs
      virt:
        command: "list_vms"
      register: vms

    - name: create vm
      command: >
                virt-install --import --name {{ item.key }}
                --memory {{ item.value.mem }} --vcpus {{ item.value.cpus }}
                --disk {{ vm_location }}/{{ item.key }}.{{ item.value.file_type }}
                --noautoconsole --os-variant {{ item.value.os_type }} --network bridge=br-hk
      when: item.key not in vms.list_vms
      with_dict: "{{ guests }}"

    - name: start vm
      virt:
        name: "{{ item.key }}"
        state: running
      with_dict: "{{ guests }}"

 

 

2. vars/vms.yml

위 플레이북에서 사용하는 변수 정보입니다.

[root@hk-controller vm]#cat vars/vms.yml
---
vm_location: "/var/lib/libvirt/images"
root_pass: "password"

guests:
  hk-director:
    mem: 32768
    cpus: 8
    os_type: rhel7
    file_type: qcow2

 

 

3. playbook 실행 

위 내용은 위 "특이사항" 으로 인해 임시 테스트를 하기 위해 1. tasks/main.yml 파일을 직접 실행시켜 테스트를 완료하였습니다.

 

728x90