Kvm虚拟机上实现amp分机搭建

Posted zkwjl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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地址 效果如下:

 技术分享图片

 

开始注册

 技术分享图片

 

 

 

注册成功开始登陆。

 

 技术分享图片

 

 

实验完成。

 

以上是关于Kvm虚拟机上实现amp分机搭建的主要内容,如果未能解决你的问题,请参考以下文章

基于KVM分机部署LAMP,并安装wordpress

搭建KVM虚拟化平台

KVM部署搭建

CentOS7中搭建KVM虚拟化平台

CentOS 7中搭建KVM虚拟化平台

Centos7中搭建KVM虚拟化平台