實驗圖示:
跳板機:(以跳板機爲宿主機)
[root@centos7(zxl) ~]# yum -y install libvirt-daemon-kvm qemu-kvm virt-manager libvirt
[root@centos7(zxl) ~]# systemctl restart libvirtd
創建NAT橋:
#創建http-fpm網橋
root@centos7(zxl) ~]# cd /etc/libvirt/qemu/networks/
[root@centos7(zxl) networks]# cp default.xml httpfpm.xml
[root@centos7(zxl) networks]# vim httpfpm.xml
<network>
<name>httpfpm</name>
<uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937a</uuid>
<bridge name='httpfpm' stp='on' delay='0'/>
<mac address='52:54:00:c6:21:33'/>
<ip address='10.0.0.1' netmask='255.255.255.0'> #網橋自身ip
<dhcp>
<range start='10.0.0.2' end='10.0.0.254'/> #網橋分配的ip地址範圍
</dhcp>
</ip>
</network>
[root@centos7(zxl) ~]# virsh net-define /etc/libvirt/qemu/networks/httpfpm.xml #使這個域生效,但是不啓動
[root@centos7(zxl) ~]# virsh net-start httpfpm #開啓這個域
[root@centos7(zxl) ~]# virsh net-autostart httpfpm #使這個域開機自啓動
#創建php-mysql網橋
[root@centos7(zxl) ~]# cd /etc/libvirt/qemu/networks/
[root@centos7(zxl) networks]# cp httpfpm.xml phpmysql.xml
<network>
<name>phpmysql</name>
<uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937b</uuid>
<bridge name='phpmysql' stp='on' delay='0'/>
<mac address='52:54:00:c6:21:34'/>
<ip address='20.0.0.1' netmask='255.255.255.0'>
<dhcp>
<range start='20.0.0.2' end='20.0.0.254'/>
</dhcp>
</ip>
</network>
[root@centos7(zxl) ~]# virsh net-define /etc/libvirt/qemu/networks/phpmysql.xml
Network phpmysql defined from /etc/libvirt/qemu/networks/phpmysql.xml
[root@centos7(zxl) ~]# virsh net-start phpmysql
Network phpmysql started
[root@centos7(zxl) ~]# virsh net-autostart phpmysql
Network phpmysql marked as autostarted
創建物理橋:
[root@centos7(zxl) ~]# nmcli connection add type bridge con-name br0 ifname br0
[root@centos7(zxl) ~]# nmcli connection modify br0 ipv4.method manual ipv4.addresses 172.18.254.39/16 ipv4.gateway 172.18.0.1 ipv4.dns 172.18.0.1
[root@centos7(zxl) ~]# nmcli connection up br0
[root@centos7(zxl) ~]# nmcli connection add type bridge-slave ifname ens33 master br0
[root@centos7(zxl) ~]# nmcli connection up bridge-slave-ens33
創建虛擬磁盤文件:(其作用是:記錄安裝的過程,以便可以用作模板來多次安裝)
[root@centos7(zxl) ~]# mkdir -pv /virtualmachines/centos7_base
[root@centos7(zxl) ~]# qemu-img create -f qcow2 -o size=80G,preallocation=metadata,compat=1.1 /virtualmachines/centos7_base/centos7.img #這個centos7.img是在創建centos7虛擬機時用的。(第二個圖有顯示)
安裝centos7:(下圖是安裝的重要的點)
進去httpd的虛擬機:
[root@httpd conf.d]# vim /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
[root@httpd conf.d]# vim pma.conf
#DirectoryIndex index.php
<VirtualHost *:80>
ServerName bbs.magedu.com
DocumentRoot /vhosts/pma/htdocs
<Directory /vhosts/pma/htdocs>
Require all granted
</Directory>
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://10.0.0.4:9000/vhosts/pma/htdocs/$1
</VirtualHost>
進入php虛擬機:(將包都在php裏運行)
[root@php htdocs]# vim /etc/php-fpm.d/www.conf
listen = 0.0.0.0:9000
;listen.allowed_clients = 127.0.0.1
#這個目錄是httpd給限制的
[root@php htdocs]# /vhosts/pma/htdocs
#然後將wordpress包下到這個目錄即可。
mysql虛擬機裝一個mysql服務即可。
筆記:
[root@localhost ~]# yum install libvirt-daemon-kvm qemu-kvm virt-manager libvirt
qemu-kvm ----模擬計算機的工具,爲KVM虛擬機提供IO設備
libvirt ----管理虛擬機
virt-install ----命令行的虛擬機創建安裝工具
bridge-utils ----網橋工具
用戶網絡(User Networking):NAT方式,讓虛擬機訪問主機、互聯網或本地網絡上的資源的簡單方法,但是不能從網絡或其他的客戶機訪問客戶機,性能上也需要大的調整。
虛擬網橋(Virtual Bridge):Bridge方式,這種方式要比用戶網絡複雜一些,但是設置好客戶機與互聯網,客戶機與主機之間的通信都很容易。
[root@KVM ~]# systemctl start libvirtd
[root@localhost yum.repos.d]# brctl addbr mybr0 #增加一個網橋 brctl show 查看
brctl delbr mybr0 #刪除mybr0
[root@localhost yum.repos.d]# brctl stp mybr0 on #開啓stp
[root@localhost yum.repos.d]# ip link add veth0.0 type veth peer name veth0.1 #添加虛擬以太網
[root@localhost yum.repos.d]# ip link set dev veth0.0 up 啓動veth0.0
[root@localhost yum.repos.d]# ip link set dev veth0.1 up 啓動veth0.1
[root@localhost yum.repos.d]# brctl addif mybr0 veth0.1 將mybr0和veth0.1關聯起來(mybr0是交換機,veth是虛擬以太網)
[root@localhost yum.repos.d]# ip netns add myns #相當於建立一個隔離的虛擬機
[root@localhost yum.repos.d]# ip netns list #顯示netns
[root@localhost yum.repos.d]# ip link set veth0.0 netns myns #將一個虛擬以太網連接到這個虛擬機中
[root@localhost yum.repos.d]# ip netns exec myns ifconfig -a #顯示ip
[root@localhost yum.repos.d]# ip netns exec myns ip link set veth0.0 name eth0 #將veth0.0重命名爲eth0
[root@localhost yum.repos.d]# ip netns exec myns ifconfig eth0 10.10.0.1/24 up #給eth0設置ip地址並將其激活
[root@localhost yum.repos.d]# ip netns exec myns ifconfig #查看ip地址
[root@localhost app]# ip link set mybr0 up #開啓mybr0
[root@localhost app]# ip addr add 10.10.0.254/24 dev mybr0 #給mybr0ip地址
[root@localhost app]# ifconfig #查看ip地址
virsh attach-interface c1 bridge mybr0 #這個c1虛擬機,給c1一個橋接的mybr0網絡
virsh detach-interface c1 bridge --mac mac地址 #virsh domiflist c1這個可以查到mac地址,,這個命令是拔出一個橋接的網絡
virsh console c1 #在終端上連接kvm創建的虛擬機,退出爲ctrl+]
創建多個kvm虛擬機
[root@localhost qemu]# cd /etc/libvirt/qemu/
複製上邊進入的目錄裏的 .xml文件,想創建幾個就複製幾份
修改複製的文件將