1. 程式人生 > >Kvm虛擬機器上實現amp分機搭建

Kvm虛擬機器上實現amp分機搭建

          Kvm虛擬機器上實現amp分機搭建

 

##實驗前提

   在搭建之前,我們需要做好一個amp的實驗圖。

 

 

 

如上圖所示,需要上三臺kvm虛擬機器,(分別為裝載這httpd服務的虛擬機器,裝載php-fpm服務的虛擬機器,裝載著mysql服務的虛擬機器),

一臺跳板機,作為連線kvm虛擬機器的機器(用本機的centos即可)。

一臺連線外網和內網的windows電腦(裝載centos的筆記本)。

一個物理橋br0centos7

上可以連線外網的網絡卡修改成物理橋,實現httpd伺服器可以被訪問),

一個httpfpm網橋(使得http服務和php服務可以連線),

一個phpmysql網橋(使得phpmysql可以連線)。

一:搭建網橋

  我們首先要安裝一些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;建立物理橋

 物理橋的建立通過centos7nmcli命令建立

 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地址 效果如下:

 

 

開始註冊

 

 

 

 

註冊成功開始登陸。

 

 

 

 

實驗完成。