Kvm虛擬機器上實現amp分機搭建
Kvm虛擬機器上實現amp分機搭建
##實驗前提
在搭建之前,我們需要做好一個amp的實驗圖。
如上圖所示,需要上三臺kvm虛擬機器,(分別為裝載這httpd服務的虛擬機器,裝載php-fpm服務的虛擬機器,裝載著mysql服務的虛擬機器),
一臺跳板機,作為連線kvm虛擬機器的機器(用本機的centos即可)。
一臺連線外網和內網的windows電腦(裝載centos的筆記本)。
一個物理橋br0(centos7
一個httpfpm網橋(使得http服務和php服務可以連線),
一個phpmysql網橋(使得php和mysql可以連線)。
一:搭建網橋
我們首先要安裝一些kvm和網橋相關的包
yum -y install libvirt-daemon-kvm qemu-kvm virt-manager libvirt systemctl restart libvirtd
1:搭建http-fpm網橋(網橋都搭建在跳板機上
<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'> <dhcp> <range start='10.0.0.2' end='10.0.0.254'/> </dhcp> </ip> </network>
進入到/etc/libvirt/qemu/networks/目錄下,ls
Default.xml是一個預設模板,我們將他拷貝為httpfpm,然後vim編輯httpfpm.xml
搭建一個httpfpm網橋,需要修改下面的東西
<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'> <dhcp> <range start='10.0.0.2' end='10.0.0.254'/> </dhcp> </ip> </network>
儲存退出,然後啟動這個網橋。
virsh net-define /etc/libvirt/qemu/networks/httpfpm.xml
virsh net-start httpfpm
virsh net-autostart httpfpm
我們可以通過 brctl show檢視網橋。
上圖是我搭建好的所有網橋。
2:搭建php-masql網橋
同理http-fpm網橋,拷貝為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>
啟動網橋。
virsh net-define /etc/libvirt/qemu/networks/phpmysql.xml virsh net-start phpmysql virsh net-autostart phpmysql
3;建立物理橋
物理橋的建立通過centos7的nmcli命令建立
nmcli connection add type bridge con-name br0 ifname br0 nmcli connection modify br0 ipv4.method manual ipv4.addresses 172.18.251.81/16 ipv4.gateway 172.18.0.1 ipv4.dns 172.18.0.1 nmcli connection up br0 nmcli connection add type bridge-slave ifname ens33 master br0 nmcli connection up bridge-slave-ens33.
mkdir -pv /virtualmachines/centos7_base Qemu-img creat -f qcow2 -o size=80G,preallocation=metadata,compat=1.1 /virtualmachines/cent os7_base/centos7.img mount 172.18.0.1:/var/ftp/pub /mnt/
網橋搭建完成後,需要搭建每臺kvm虛擬機器的虛擬磁碟檔案,命令如下
mkdir -pv /virtualmachines/centos7_base Qemu-img creat -f qcow2 -o size=80G,preallocation=metadata,compat=1.1 /virtualmachines/cent os7_base/centos7.img mount 172.18.0.1:/var/ftp/pub /mnt/
二:安裝kvm虛擬機器
此時裝備工作完成,開始通過kvm管理工具(virt-managerzui在虛擬機器本機操作,不要通過xshell連線)建立第一臺kvm機器(模板機器)。
建立新的kvm虛擬機器
選擇自己iso映象安裝
然後 在第四步
選擇剛才建立的虛擬磁碟
開始安裝。安裝完成後。開機進入,將模板機新增到vro物理橋上實現,網路通訊,可以通過yum倉庫安裝需要的軟體。
在這臺模板機上,安裝我們amp所需要的軟體包和一些基本命令(看安裝系統時,是否選擇centos光碟的最簡安裝)
yum -y install httpd php-fpm php-mysql mariadb-server net-tools vim .
安裝完成後 關機 ,回到centos跳板機上操作。
找到剛剛建立的虛擬磁碟檔案
cd /virtualmachines/centos7_base
將centos7_base 目錄下的img檔案,拷貝到同級目錄下的其他幾個目錄下,並改名為
httpd.img php.img mysql.img,當作三臺虛擬機器的系統(在選擇安裝虛擬機器的第一步 選擇匯入現有磁碟印象,三臺虛擬機器分別選擇對應的img檔案,開始安裝 。 然後啟動虛擬機器)。
虛擬器啟動玩後,就需要去根據我們建立的網路圖加入各自的網橋。修改一下主機名和選擇的img檔案對應。
http 虛擬機器加入 br0 和http-fpm網橋
Php虛擬機器加入http-fpm 和php-mysql網橋
Mysql虛擬機器加入php-mysql網橋。
然後檢視各自ip 是否 成功分配ip地址。
此時我們的三臺虛擬機器完成構建。
三:搭建服務
1.httpd服務
進入http主機。開啟httpd服務。
進入到httpd配置檔案裡
cd /etc/httpd/conf.d/
ls
然後新增一個虛擬主機的配置檔案,如上圖pma.conf
DirectoryIndex index.php <VirtualHost *:80> ServerName pma.magedu.com DocumentRoot /vhost/pam/htdocs ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://10.0.0.190:9000/vhost/pam/htdocs/$1 <Directory "/vhosts/pam/htdoc"> Options None AllowOverride None Require all granted </Directory> </VirtualHost>
重啟httpd服務(需要注意的是我們需要在本機同樣建立/vhost/pam/htdocs目錄 裡面不需要放檔案)
2.php服務
進入php主機,安裝php-mysql模組。啟動php服務
進入配置目錄vim /etc/php-fpm.d/www.conf
修改監聽埠ip和客戶端ip
vim /etc/php-fpm.d/www.conf
註釋掉listen.allowed_clients:
儲存退出。
重啟服務。
php的動態網頁wordpress 放在php主機的 /vhost/pam/ 下
做一個軟連線 htdocs 連結到 wordpress 。
3.mysql服務。
進入mysql主機,啟動mariadb 服務。進入mysql資料庫。
建立一個wpdb的庫,建立一個wpuser使用者,wppass密碼。授權庫的許可權。
grant all on wpdb.* to 'wpuser'@'20.0.0.%.%' identified by 'wppass';
四:開始實踐
將三臺機器的防火牆關掉 ,seliunx關掉。
訪問httpd主機的ip地址 效果如下:
開始註冊
註冊成功開始登陸。
實驗完成。