基于kvm的lamp搭建
环境linux服务器一台可以连接外部网络IP:172.18254.66
Centos 7的镜像
关闭selinux清空防火墙
需要搭建的环境kvm虚拟机三台,踏板机上的三个网桥
要求:
http服务器:网址为172.18.254.66和10.10.0.66,并且只提供httpd服务,别的任何服务不提供,不可以访问外部网络,外部网络可以访问它,以及httpd安装包
php-fpm服务器:只对http服务器提供php服务,php-fpm安装包
mysql服务器:只对php服务器提供mysql服务,mariadb-server安装包
踏板机:可通过踏板机访问控制三台服务器
一、kvm环境的搭建
检查自己的内核是否支持kvm搭建
grep -i -E '(vmx|svm|lm)' /proc/cpuinfo 若过滤出lm与vmx/svm则表示支持kvm搭建
注意:若在VMware等虚拟机上显现本实验则需勾选虚拟化
modprobe kvm 加载kvm模块
yum install qemu-kvm libvirt-daemon-kvm libvirt virt-manager 安装所需软件包
systemctl start libvirtd.service 启动服务
二、在踏板机上创建2个net桥与一个物理桥
创建http与php的net0桥
cd /etc/libvirt/qemu/networks/ cp default.xml net0.xml vim net0.xml <network> <name>net0</name> <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937a</uuid> 这一项必须要要修改,也可以删除 <bridge name='net0' stp='on' delay='0'/> <mac address='52:54:00:c6:21:33'/> 也要修改也可删除 <ip address='10.10.0.1' netmask='255.255.255.0'> <dhcp> <range start='10.0.10.2' end='10.10.0.254'/> </dhcp> </ip> </network> virsh net-define /etc/libvirt/qemu/networks/net0.xml 根据文件创建net0 virsh net-start net0 开启net0 virsh net-autostart net0 默认开启net0
创建php-mysql的网桥net1
cd /etc/libvirt/qemu/networks/ cp httpfpm.xml phpmysql.xml vim httpfpm.xml <network> <name>net1</name> <uuid>06a6d52e-6c03-4b29-bdf7-2cfe6d5e937b</uuid> 修改 <bridge name='net1' stp='on' delay='0'/> <mac address='52:54:00:c6:21:34'/> 修改 <ip address='20.20.0.1' netmask='255.255.255.0'> <dhcp> <range start='20.20.0.2' end='20.0.0.254'/> </dhcp> </ip> </network> virsh net-define /etc/libvirt/qemu/networks/net1.xml virsh net-start net1 irsh net-autostart net1
创建连接http与外网的物理网桥ph0
nmcli connection add type bridge con-name ph0 ifname br0 nmcli connection modify ph0 ipv4.method manual ipv4.addresses 172.18.254.108/16 ipv4.gateway nmcli connection up ph0 nmcli connection add type bridge-slave ifname ens33 master ph0 nmcli connection up bridge-slave-ens33
三、创建模板机
qemu-img create –f qcwl –o size=80G,preallocation=metadata compat=1.1 /app/kvm/centos/centos.img 创建虚拟磁盘 创建虚拟磁盘
virt-manager 打开图形化界面
我们一般选择最小化安装这样会缺少很多命令,我们应该在模板机内装好我们需要的命令以及配好yum仓库,以方便我们的克隆剩下的就和创建VMware虚拟机一样
管理ip的 rpm -qf $(which ifconfig)
vim yum -y install vim
lftp yum -y install lftp
补全nmcli的 yum -y install bash-completion
你可以继续通过virt-manager命令控制虚拟机,这里我提供另一个工具wok
安装wod需要wok-2.5.0-0.el7.centos.noarch.rpm与kimchi-2.5.0-0.el7.centos.noarch.rpm包
这个网站有各种各样的管理kvm的工具https://www.linux-kvm.org/page/Management_Tools
yum localinstall wok-2.5.0-0.el7.centos.noarch.rpm kimchi-2.5.0-0.el7.centos.noarch.rpm
systemctl start wokd 起服务
有可能ngix没有伴随启动我们可以先启动ngix
然后就可以进入浏览器访问https://IP地址:9001 访问wok
账号密码就是你centos本机的密码
登录后点击virtualzation,找到模板选项可以看到添加模板如果你的网络比较好可以选择下面的模板,这样你最初的模板机都不用装,内有就放模板机的路径填入
这样我们就可以根据模板快速创建其余的虚拟机了
用wod还有一个好处就是可以在网页页面访问本机命令行客户端
http服务器
yum –y install httpd vim /etc/httpd/conf/httpd.conf
在这个里面加入index.php
Cd /etc/httpd/conf.d/ vim pma.conf 创建虚拟主机 <VirtualHost *:80> ServerName coco.magedu.com DocumentRoot /vhosts/pam/htdocs 静态页面访问地址 ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://10.10.0.67:9000/var/www/wordpress/$1 动态页面访问地址远程访问 <Directory "/vhosts/pam/htdocs"> Options None AllowOverride None Require all granted </Directory> </VirtualHost> systemctl restart httpd 重启服务
当然这里还要修改网络配置我就不写了,前面的博客有如何修改网络配置
php-fpm服务器
在这里我们装一个wordpress
yum -y install php-fpm php-mysql tar xf wordpress-4.9.4-zh_CN.tar.gz mv wordpress-4.9.4-zh /var/www/ wordpress chown -R apache.apache wordpress 修改文件属主属组 vim /etc/php-fpm.d/www.conf listen = 0.0.0.0:9000 修改为监听在所有网址的9000端口 ;listen.allowed_clients = 127.0.0.0/16 注释这一行 systemctl restart php-fpm 重启服务
这时我们访问172.168.254.66就应该可以进入wordpress
Mysql服务器
yum -y install php-mbstring systemctl restart php-fpm mysql 创建一个表和可远程连接的账号 MariaDB [(none)]> create database wpdb; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on *.* to 'root'@'%' identified by 'magedu' with grant option; Query OK, 0 rows affected (0.00 sec) 访问172.18.254.66在网页输入表名,账号 密码,远程连接主机的地址
如果要做访问控制只需添加iptables规则就可以了,前面博客介绍的有iptables规则如何添加