初始環境的安裝: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
找出使用的磁碟名稱
[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:
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