规划图

image.png

一、安装kvm

1、环境准备

安装之前,需要lscpu看flag是否包含svm或者vmx,该标志表示cpu是否支持硬件虚拟化,而且需要64位架构,命令:lscpu | egrep 'vmx|lv|svm'

image.png

如果用的是vmware,需要打开

image.png

开机后再查看,模块已经装入(CentOS7默认装入),装入指令modprobe kvm

image.png

2、安装包

yum install libvirt-daemon-kvm qemu-kvm virt-manager libvirt

这里需要注意,如果使用阿里云epel源,需要更改epel配置路径,安装包在镜像站的virt目录下(和epel同级目录)

image.png

安装后systemctl restart libvirtd

3、图形界面打开,virt-manager,出现虚拟机界面

image.png

 

看到QEMU/KVM说明已经连接到本地,kvm之上,可以创建虚拟机了

4、安装

安装有多种方式供选择:导入镜像、网络安装、导入qcow2模板,这里我们将利用pxe网络方式安装。首先将连接pxe服务器的物理网卡更改为桥,物理网卡设置为桥,打开网卡配置文件/etc/sysconfig/network-scripts,cp ifcfg-eth0 ifcfg-br0,将eth0网卡配置文件添加BRIDGE=br0,将ifcfg-br0的网卡配置文件中TYPE=Bridge,NAME和DEVICE改为br0

对网卡的配置,设备DEVICE不变,将ip、子网掩码、网关等删掉,添加BRIDGE=br0

image.png

对ifcfg-br0进行修改

image.png

保存后重启网络

image.png

5、如果pxe安装,安装时候内存选择2048,否则可能会报错,之后下一步点选自定义设置

image.png

6、自定义设置中,此项勾选上

 image.pngimage.pngimage.png

 完成后开始安装,之后进入pxe自动安装界面

二、下载wok、kimichi

进入github,搜索kimchi,点击后

image.png

进入后点击releases

image.png

下载符合自己系统的版本

image.png

下载好后yum安装,安装完成后systemctl daemon-reload;systemctl restart wokd,8001端口打开

image.png

安装完成后使用命令

virsh-sysprep -d centos7.0-2,该主机所在的位置加读权限,比如实验中/var/lib/libvirt/image

image.png

命令-d后是主机的domain名,不要加名称

之后便可以打开浏览器,https://ip:8001,输入linux账户密码后进入界面

image.png

在这里添加模板,根据模板创建4台虚拟机

image.png

创建模板

(1)mkdir /app/vmdisk

(2)cp /var/lib/libvirt/images/centos7.0-2.qcow2 /app/vmdisk/centos7.qcow2

image.png

(3)添加存储器

image.png

弹出界面

image.png

需要稍等一会

image.png

接着就可以添加模板了

image.png

创建成功后的模板

image.png

之后我们就可以根据模板创建主机了

image.png

创建界面

image.png

按照实验要求,创造4台

image.png

点击查看控制台就可以进入命令符界面了

image.png

注意:建立好主机后最好安装好各自的服务,在搭建网络完成后再安装时,有点麻烦

三、在宿主机上配置转发功能

vim /etc/sysctl.conf

image.png

sysctl -p,可以看到

image.png

之后systemctl stop NetworkManager、systemctl disable NetworkManager开始配置

四、配置网桥

1、首先在宿主机配置物理桥br1

cd /etc/sysconfig/network-scripts

cp ifcfg-ens38 ifcfg-br1

将ens38做成物理桥br1

image.png

ens38网卡设置

image.png

2、配置mynet1桥

image.png

配置mynet2桥

image.png

完成配置后systemctl restart libvirtd

3、激活桥

virsh net-create mynet1.xml

virsh net-create mynet2.xml

brctl stp br1 on

image.png

brctl show

image.png

五、给各虚拟机配置网卡

image.png

六、去各个主机配置网卡ip地址

填各主机ip配置文件时候,请注意需要对应mac填写规划好的ip,每个主机自带一个eth0网卡,该网卡不动,只更改多出来的网卡对应的配置文件

七、由于之前没有安装应用,这里接入外网安装

将服务机全部接到这块br1物理桥上进行安装,kvm中需要装服务的主机各自接到网桥br1上

image.png

连接后从br1自动获取地址,并可以联网

image.png

连上网就下载安装服务吧。这里防火墙运用iptables,所有一并下载到各主机,安装完成后拆除php-fpm和mysql的外网连接

附:拆KVM内网卡接口命令

virsh detach-interface mysql bridge --mac 52:54:00:ab:74:7e

八、包含实验:局域网内服务器实现LAMP架构

 1、mariadb安装:10.56.0.1,创建用户

mysql> grant all on *.* to user@'%' identified by 'user'

2、php安装:10.56.0.2,10.66.0.2

yum -y install php-fpm php-mysql

vim /etc/php-fpm.d/www.conf

image.png

之后新增php网页存放的目录mkdir /php,在其中vim index.php,增加测试代码,更改目录所有者所属组,chown -R apache.apache /php,systemctl start php-fpm

image.png

3、apache安装:10.66.0.1

vim /etc/httpd/conf.d/*.conf

DirectoryIndex index.php

ProxyRequests off

ProxyPassMatch ^/(.*\.php)$ fcgi://10.66.0.2:9000/php/$1

image.png

4、测试,此时访问httpd网址看是否成功

image.png

成功

5、基于lamp架构进行WordPress安装,解压后目录覆盖到php服务器下:

(1)cn.wordpress.org,下载wordpress-VERSION-zh_CN.zip,

(2)unzip wordpress-VERSION-zh_CN.zip 至php网站目录下

image.png

(3)在数据库服务器,创建wordpress数据库,并创建wordpress使用的数据用户

mysql>create database wpdb;

mysql> grant all privileges on wpdb.* to wpuser@'%' identified by 'wppass'

image.png

(4)回到php服务器进入wordpress目录,cp wp-config-sample.php wp-config.php

进行修改

image.png

(5)之后便是进行wordpress的五分钟安装,但界面没有图片,因为只是php服务,只能处理动态资源,静态图片等资源无法资源,因此在php服务器上需要安装httpd服务,安装好后新建配置文件更改转发规则,在/etc/httpd/conf.d/myhttpd.conf中有

image.png

测试成功

image.png

九、配置防火墙iptables

实验中不用firewalld,使用iptables工具

yum -y install iptables-services

1、首先根据规划图,httpd是对外开放的服务器,除非有恶意***或者大量SQL注入猜测密码放入防火墙黑名单

2、fpm服务器,只允许连接VNC、httpd、mysql的报文流入

image.png

3、mysql服务器,只允许连接VNC、fpm的报文流入

image.png

4、VNC跳板机:只允许某些特定ip或者主机连入,拒绝其它内部服务器的登入,因此跳板机也需要插入一根连接到br1的网线,指定静态网址192.168.56.160,这样便也可以上网了

现设置一另主机可以使用跳板机,该主机IP为192.168.56.143,mac为00:0c:29:6b:b0:79

image.png

测试:

image.png

十、宿主机重启后网桥会关闭,各主机网卡也会显示

首先进入wok开启网络,再开启各kvm虚拟机

image.png

之后按照配置时候virsh attach-interface VM bridge BRI的顺序写好脚本自动执行,只要网卡添加顺序正确,余下都是自动获取的