반응형
아래 내용은 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
'IaC (Automation) > Ansible-Playbook' 카테고리의 다른 글
[Ansible] debug - var vs stdout vs stdout_lines 차이점 (0) | 2022.04.01 |
---|---|
[Playbook] include task를 활용한 playbook 샘플 (0) | 2022.03.31 |
[playbook] kvm (virt-manager) 설치 playbook (0) | 2021.10.13 |
[playbook] grafana 설치 playbook (0) | 2021.10.08 |
[playbook] node_exporter 설치 playbook (0) | 2021.10.08 |