自定義虛擬機安裝(KVM)

                                                                 自定義虛擬機安裝

一、創建虛擬交換機

原理:調用 dnsmasq 提供DNS、DHCP等功能

創建配置文件  /etc/libvirt/qemu/networks/vbr.xml

<network>
  <name>vbr</name>
  <bridge name="vbr"/>
  <forward mode="nat"/>
  <ip address="192.168.1.254" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.1.100" end="192.168.1.200"/>
    </dhcp>
  </ip>
</network>

二、真機room上快速配置網絡 yum 源

[root@room ~]# yum install vsftp
[root@room ~]# vim  /etc/vsftpd/vsftpd.conf
 ... 
 listen=YES
 listen_ipv6=NO
 ...
[root@room ~]# systemctl enable vsftpd
[root@room ~]# systemctl start vsftpd

[root@room ~]# mkdir  /var/ftp/centos7
[root@room ~]# mount  –t  iso9660   –o loop,ro  /root/CentOS7-1708.iso    /var/ftp/centos7

[root@room ~]# yum repolist

三、virt-manager圖形化安裝虛擬機

1.啓動 virt-manager 軟件,選擇新建虛擬機

2.選擇網絡安裝源

3. 創建自定義鏡像文件node.img

[root@room ~]# qemu-img  create  -f  qcow2  /var/lib/libvirt/images/node.img   16G

 

4. 網絡選擇自定義的vbr

 

5. 軟件選擇 minimal ,關閉 KDUMP,選擇手工分區

 

 

 

 

四、虛擬機模板製作

把剛剛安裝好的系初始化

1. 禁用 selinux

[root@localhost ~]#  vim  /etc/selinux/config
 SELINUX=disabled

2. 卸載相關軟件

 [root@localhost ~]# yum  remove  -y  NetworkManager-*   firewalld-* 

3. 配置 yum 源

 [root@localhost ~]# vim /etc/yum.repo.d/centos7.repo
   [local_repo]
   name=centos7
   baseurl="ftp://192.168.1.254/centos7"
   enabled=1
   gpgcheck=0

4. 常用系統命令安裝

 [root@localhost ~]# yum install -y net-tools vim-enhanced bridge-utils  

5. 修改網卡配置文件

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
   DEVICE="eth0"
   ONBOOT="yes"
   IPV6INIT="no"
   TYPE="Ethernet"
   BOOTPROTO ="dhcp"

6. 禁用空路由 

[root@localhost ~]#  vim  /etc/sysconfig/network
   NOZEROCONF="yes"

7. 重啓機器

[root@localhost ~]# reboot

8. 添加 Console 配置及初除磁盤分區裏的個性化信息

[root@localhost ~]# vim  /etc/default/grub
   ...
   GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 
   console=ttyS0,115200n8"
   GRUB_DISABLE_LINUX_UUID="true"
   GRUB_ENABLE_LINUX_LABEL="true"

9.  重新生成 grub.cfg

[root@localhost ~]#  grub2-mkconfig -o /boot/grub2/grub.cfg

10. 修改 /etc/fstab,blkid 查看 uuid 對應的磁盤設備, 將UUID修改爲系統設備 

[root@localhost ~]# blkid
   /dev/vda1: UUID="98bd48a3-dd66-49bd-a0e1-3c70e337f2aa" TYPE="xfs"

[root@localhost ~]# vim  /etc/fstab
   /dev/vda1       /          xfs     defaults        0    0

11. 安裝分區擴展軟件

[root@localhost ~]# yum install -y cloud-utils-growpart

[root@localhost ~]# chmod 755 /etc/rc.local      # 設置第一次開機自勱擴容根目錄
  
[root@localhost ~]#  vim    /etc/rc.local
/usr/bin/growpart /dev/vda 1                     # 擴展磁盤分區空間(讓 /dev/vda1 變大)
/usr/sbin/xfs_growfs /                           # 擴展文件系統識別空間(讓 df -h 可使用空間變大)

12. 關閉虛擬機,清理信息 (真機)

[root@room ~]# virt-sysprep -d  centos7.0
[   0.0] Examining the guest ...
[  28.9] Performing "abrt-data" ...
[  28.9] Performing "backup-files" ...
[  29.2] Performing "bash-history" ...
[  29.2] Performing "blkid-tab" ...
[  29.3] Performing "crash-data" ...
[  29.3] Performing "cron-spool" ...
[  29.3] Performing "dhcp-client-state" ...
[  29.3] Performing "dhcp-server-state" ...
[  29.3] Performing "dovecot-data" ...
[  29.3] Performing "logfile s" ...
[  29.3] Performing "machine-id" ...
[  29.3] Performing "mail-spool" ...
[  29.3] Performing "net-hostname" ...
[  29.3] Performing "net-hwaddr" ...
[  29.3] Performing "pacct-log" ...
[  29.3] Performing "package-manager-cache" ...
[  29.3] Performing "pam-data" ...
[  29.3] Performing "passwd-backups" ...
[  29.3] Performing "puppet-data-log" ...
[  29.3] Performing "rh-subscription-manager" ...
[  29.3] Performing "rhn-systemid" ...
[  29.3] Performing "rpm-db" ...
[  29.3] Performing "samba-db-log" ...
[  29.3] Performing "script" ...
[  29.3] Performing "smolt-uuid" ...
[  29.3] Performing "ssh-hostkeys" ...
[  29.3] Performing "ssh-userdir" ...
[  29.3] Performing "sssd-db-log" ...
[  29.3] Performing "tmp-files" ...
[  29.3] Performing "udev-persistent-net" ...
[  29.3] Performing "utmp" ...
[  29.3] Performing "yum-uuid" ...
[  29.3] Performing "customize" ...
[  29.3] Setting a random seed
[  29.8] Performing "lvm-uuids" ...

13. 備份虛擬機XML配置文件

[root@room ~]#cd  /etc/libvirt/qemu/
[root@room qemu]#cp  centos7.xml   centos7.0.xml.bak

14. 修改XML配置文件如下

<domain type='kvm'>
  <name>node</name>
  <memory unit='KB'>2097152</memory>
  <currentMemory unit='KB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc'>hvm</type>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
    <bios useserial='yes'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
  </cpu>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/node.img'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <interface type='bridge'>
      <source bridge='vbr'/>
      <model type='virtio'/>
</interface>
<channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>
    <serial type='pty'></serial>
    <console type='pty'>
      <target type='serial'/>
    </console>
    <memballoon model='virtio'></memballoon>
  </devices>
</domain>

15.   刪除虛擬機定義

[root@room ~]#  virsh  undefine  centos7.0

16.  查看模板虛擬機鏡像

[root@room ~]#  ll  -h  /var/lib/libvirt/images/node.img
-rw-r--r--  1  root  root  1.2G  9月   7 17:35  node.img

五.  快速創建虛擬機-----例如創建虛擬機node1

1.  創建磁盤文件

[root@room ~]# cd /var/lib/libvirt/images
[root@room images]# qemu-img create -b node.img -f qcow2 node1.img 32G

2.  創建虛擬機配置文件

[root@room images]#sed 's/node/node1/' /root/nsd1804/centos7.0.xml > /etc/libvirt/qemu/node1.xml
[root@room images]#virsh define /etc/libvirt/qemu/node1.xml
定義域 node1(從 /etc/libvirt/qemu/node1.xml)

3.  啓動虛擬機

[root@room images]#virsh start node1
域 node1 已開始

4.  連接查看虛擬機

[root@room images]# virsh console node1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章