centos7安裝kvm環境採用網橋模式並建立虛擬機器制作openstack需要的映象

wadeson發表於2017-10-25

初始環境的安裝:centos7 mini iso映象進行安裝的系統

採用的環境是vm該軟體,聯網方式NAT模式下配置的靜態ip(如何在NAT模式下配置靜態ip參考之前的文章)

1、由於要安裝kvm環境,首先確認是否開啟了虛擬機器

將圖中的地方打上勾

2、安裝kvm環境這裡採用使用vnc連線的方式進行建立虛擬機器,所以這裡採用安裝桌面環境,並安裝vnc

# yum groupinstall "Desktop" "GNOME Desktop"   安裝桌面環境
# yum install tigervnc

 3、centos7預設啟動級別是3,所以這裡需要進行修改到5

設定centos7啟動級別:5
systemctl set-default graphical.target

# reboot  檢視是否完成桌面環境

 中間圖形安裝這裡省略,結果為:

4、將網路配置為網橋模式:

# cd /etc/sysconfig/network-scripts
# cp ifcfg-ens33 ifcfg-br0

 兩個配置檔案的設定如下:

[root@kvm network-scripts]# cat ifcfg-br0 
TYPE=Bridge
BOOTPROTO=none
UUID=3a9cfe3f-505f-4d4c-8fc0-fc86f2b218f3
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.101.12
GATEWAY=192.168.101.2
NETMASK=255.255.255.0

 ens33這個配置檔案如下:

[root@kvm network-scripts]# cat ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
UUID=3a9cfe3f-505f-4d4c-8fc0-fc86f2b218f3
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0

 配置完成後,重啟網路服務:

# systemctl restart network

 

將網橋名為br0開啟:

[root@kvm network-scripts]# brctl stp br0 on
[root@kvm network-scripts]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c290ed6cf	yes		ens33
virbr0		8000.5254009c1553	yes		virbr0-nic

 確保網路沒有問題:

[root@kvm network-scripts]# cat /etc/resolv.conf 
nameserver 192.168.101.2

接下來開啟配置kvm需要的環境:

# yum install qemu-kvm libvirt virt-install bridge-utils virt-manager libguestfs-tools-c qemu-img

 1、建立磁碟映象檔案:

# qemu-img create -f qcow2 /tmp/centos.qcow2 10G

 然後將需要的映象檔案上傳到tmp目錄下(CentOS-7-x86_64-Minimal-1611.iso)

[root@kvm ~]# ll /tmp/
total 697452
-rw-r--r--  1 root    root         1148 Oct 23 15:52 anaconda.log
-rw-r--r--  1 root    root    713031680 Jul  3 22:27 CentOS-7-x86_64-Minimal-1611.iso
-rw-r--r--  1 root    root       197120 Oct 25 13:46 centos.qcow2

2、使用命令建立虛擬機器:

# virt-install --virt-type kvm --name centos --ram 1024 --disk /tmp/centos.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-Minimal-1611.iso

 這裡--network bridge=br0表示這裡採用剛剛建立的網橋

[root@kvm ~]# virt-install --virt-type kvm --name centos --ram 1024 --disk /tmp/centos.qcow2,format=qcow2 --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --location=/tmp/CentOS-7-x86_64-Minimal-1611.iso

Starting install...
Retrieving file .treeinfo...                                                                                      |  366 B  00:00:00     
Retrieving file vmlinuz...                                                                                        | 5.1 MB  00:00:00     
Retrieving file initrd.img...                                                                                     |  41 MB  00:00:00     
Domain installation still in progress. You can reconnect to 
the console to complete the installation process.

 然後移動到桌面環境進行安裝

首先檢視vnc的5900埠是否開啟:

[root@kvm ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      24681/qemu-kvm      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      2189/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1337/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1000/cupsd          
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1337/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1000/cupsd          
udp        0      0 192.168.122.1:53        0.0.0.0:*                           2189/dnsmasq        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           2189/dnsmasq        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           705/chronyd         
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           671/avahi-daemon: r 
udp        0      0 0.0.0.0:42824           0.0.0.0:*                           671/avahi-daemon: r 
udp6       0      0 ::1:323                 :::*                                705/chronyd         

 可以看見5900埠已經開啟了,於是使用vnc進行連線到5900埠,進行安裝:

# vncviewer :5900

 執行該命令後會彈出圖形安裝介面:

然後進行一步一步安裝就行

檢視虛擬機器狀態:

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos                         shut off

 將虛擬機器centos開啟:

[root@kvm ~]# virsh start centos
Domain centos started

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     centos                         running

 使用vncview :5900進行連線到虛擬機器:

然後進行登入到虛擬機器,設定虛擬機器的網路:

重啟網路:

# systemctl restart network

 

然後使用ssh連線工具連線到虛擬機器192.168.101.13

至此虛擬機器安裝完成,現在需要將此虛擬機器做成映象

kvm主機執行:

[root@kvm ~]# virsh dumpxml centos

 找出使用的磁碟名稱

彈出虛擬cd,關機並重啟
[root@kvm ~]# virsh attach-disk --type cdrom --mode readonly centos "" hda          
Disk attached successfully

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 2     centos                         running

[root@kvm ~]# virsh destroy centos
Domain centos destroyed

[root@kvm ~]# virsh list --all    
 Id    Name                           State
----------------------------------------------------
 -     centos                         shut off

[root@kvm ~]# virsh start centos
Domain centos started

[root@kvm ~]# virsh list --all  
 Id    Name                           State
----------------------------------------------------
 3     centos                         running

 在面的操作在虛擬機器中操作:

1、To enable the hypervisor to reboot or shutdown an instance, you must install and run the acpid service on the guest system.

# yum install acpid
# systemctl enable acpid

 2、配置去獲取matadata:

# yum install cloud-init

 For example, to configure cloud-init to put the key in an account named admin, use the following syntax in the configuration file:

修改/etc/cloud/cloud.cfg
配置檔案最後新增:

users:
- name: admin

3、安裝cloud-utils-growpart以允許分割槽調整大小

# yum install cloud-utils-growpart

 4、Disable the zeroconf route

# echo "NOZEROCONF=yes" >> /etc/sysconfig/network

 

5、Configure console

修改配置檔案/etc/default/grub,將GRUB_CMDLINE_LINUX的值改為如下:

[root@localhost ~]# cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"

 Run the following command to save the changes:

# grub2-mkconfig -o /boot/grub2/grub.cfg

 

Shut down the instance

# poweroff

 

至此在虛擬機器上面的操作就已經完成了,接下來還有幾個步驟在kvm主機上執行

Clean up (remove MAC address details)

# virt-sysprep -d centos

 

清除mac地址的這一步驟總是報錯,不知啥原因,虛擬機器狀態為:

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     centos                         shut off

 將mac地址如果成功清除後,執行最後一步將虛擬機器取消定義:

# virsh undefine centos

 最後/tmp/centos.qcow2這個映象檔案就可以作為映象傳給openstack使用了

參考文件:https://docs.openstack.org/image-guide/centos-image.html

相關文章