[클라우드 With리눅스/쉘프로그래밍(4) - 가상머신 생성 프로그램]

SooYeon Yeon·2022년 8월 22일

클라우드 With리눅스

목록 보기
29/39

실습

사용자로부터 값을 입력받아 가상머신 생성하기

  1. KVM 관련 패키지 설치
yum -y install qemu-kvm virsh virt-install libvirt virt-manager
yum -y install qemu-kvm virsh virt-install libvirt virt-manager libguestfs-tools
  1. kimchi 설치

    • fedora에서 동작해서 wokd를 이용해 kimchi로 접속
    yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    yum -y install https://github.com/kimchi-project/kimchi/releases/download/2.5.0/wok-2.5.0-0.el7.centos.noarch.rpm
    yum -y install https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.el7.centos.noarch.rpm
    systemctl enable wokd
    systemctl restart wokd

    이후 https://서버IP:8001 로 접속

  2. 파일수정

vi /etc/libvirt/qemu.conf

442 user = "root" # 제일 앞에 있는 해시 제거
446 group = "root" # 제일 앞에 있는 해시 제거

  1. kvm 재실행
sysetmctl daemon-reload
systemctl restart wokd
systemctl restart libvirtd
systemctl enable libvirtd
  1. cd /cloud/에 클라우드 이미지 설치 및 풀기
cd /cloud/
wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-2003.qcow2.xz
xz -d CentOS-7-x86_64-GenericCloud-2003.qcow2.xz
mv CentOS-7-x86_64-GenericCloud-2003.qcow2 CentOS7-Base.qcow2
  1. 생성된 이미지에 강제로 root 패스워드 설정하기
# virt-customize -a CentOS7-Base.qcow2 --root-password password:test123

[실습]

가상머신 생성 프로그램

처음 프로그램이 실행되면 화면을 clear 하고

                                 가상머신 생성 프로그램
  1. OS 선택

    • 1 CentOS7, 2 Ubuntu18.04 ..
    • 우리는 1만 선택
  2. 가상머신의 이름을 입력하세요 : gildong

    • (CentOS7-Base.qcow2 —복사—> gildong.qcow2)
    • 만약 인스턴스의 이름을 입력하지 않는다면 화면에는 “이름이 입력되지 않았습니다. 종료됩니다”가 출력되고 프로그램 종료. 이미지 복사 작업 이루어지지 않는다.
  3. CPU 개수 선택 : 1 ~ 4

    • 실습시에는 1만 선택
  4. ram 사이즈 선택 : 1 ~ 4

    • 실습시에는 1만 선택
    • 1(선택값) * 1024 → 1024
  5. 설치가 진행됩니다. 하고 종료되도록

    • 설치된 모든 인스턴스 확인
    virsh list —-all 

실습 시작 전 연습

  • gildong vm 생성
[root@sooyeon cloud]# cp CentOS7-Base.qcow2 gildong.qcow2
[root@sooyeon cloud]# ls
virt-intall --name gildong --vcpus 1 --ram 1024 --network network:default,model=virtio --disk gildong.qcow2 --import --noautoconsole

  • chulsoo vm 생성
[root@sooyeon cloud]# cp CentOS7-Base.qcow2 chulsoo.qcow2
[root@sooyeon cloud]# virt-install --name chulsoo --vcpus 1 --ram 1024 --network network:default,model=virtio --disk chulsoo.qcow2 --import --noautoconsole > /dev/null
  • 확인
[root@sooyeon cloud]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     gildong                        running
 3     chulsoo                        running

실습

#!/bin/bash
clear
echo "====가상머신 생성 프로그램===="
echo -n "OS 선택 (1. CentOS7 2. Ubuntu18.04) : "
read os

echo -n "가상머신의 이름을 입력하세요 : "
read vname
if [ -z $vname ]
then
        echo "이름이 입력되지 않았습니다."
        exit 0
fi

cp CentOS7-Base.qcow2 ${vname}.qcow2

echo -n "CPU의 개수 선택 : "
read vcpus

echo -n "RAM 사이즈 선택 (ex. 1, 2, ...) :"
read ramsize

virt-install --name ${vname} --vcpus ${vcpus} --ram $[${ramsize} * 1024] --network network:default,model=virtio --disk ${vname}.qcow2 --import --noautoconsole > /dev/null

echo "설치가 진행됩니다."
exit 0
  • 확인
virsh list --all
  • edit로 정보 확인 가능
virsh edit gildong
  • 강제종료 및 삭제
[root@sooyeon cloud]# virsh domifaddr gildong
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:20:a6:f4    ipv4         192.168.122.189/24
  • 강제종료 및 삭제
```bash
virsh destroy [Name] # 종료
virsh undefine [Name] --remove-all-storage # 디스크 삭제 하면서 인스턴스 삭제

0개의 댓글