KVM虚拟化MySQLNginxRabbitMQRedis组件安装指导
Posted mbk20170912
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟化MySQLNginxRabbitMQRedis组件安装指导相关的知识,希望对你有一定的参考价值。
1 检查服务器的配置信息
1.1 检查服务器的CPU信息
[[email protected] iso]#cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c
1.2 检查服务器的内存信息
[[email protected] iso]# cat /proc/meminfo | grep MemTotal
MemTotal: 82510856 kB
2 检查服务器是否支持虚拟化
在远程终端中执行如下面命令,确定CPU是否支持虚拟化:
[[email protected] iso]#grep -E -o ‘vmx|svm‘ /proc/cpuinfo
vmx
vmx
如果有输出,则证明服务器支持虚拟化。
3 安装KVM相关基础组件
3.1 执行下面的命令安装KVM相关基础环境
[[email protected] iso]#yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v
3.2 执行下面的命令安装虚拟机管理工具
[[email protected] iso]#yum install libguestfs-tools –y
4 创建一个网桥
网桥相当于一个交换机,在物理服务器内部虚拟化出来的多台虚拟机,虚拟机都是默认连接到创建的虚拟网桥上的。
4.1 给网桥创建一个配置文件并配置网络参数
在Cent OS 6.X下面,网卡配置文件在下面的路径中:/etc/sysconfig/network-scripts
当前物理服务器只连接了一根网线在一个物理网卡上,该物理网卡在系统中的标识为em1;
创建一个名称为ifcfg-br0的网桥的配置文件,配置格式如下:
[[email protected] network-scripts]# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.60
NETMASK=255.255.255.0
GATEWAY=10.0.0.1
DNS1=8.8.8.8
DEFROUTE=yes
该网桥需要由实际的物理网卡来承担,因为只有一条网线连接在em1的网卡上,所以需要将em1加如br0的网桥中,编辑em1的配置文件:
[[email protected] network-scripts]# cat ifcfg-em1
DEVICE="em1"
ONBOOT="yes"
BRIDGE="br0"
BOOTPROTO=none
NM_CONTROLLED="no"
DEFROUTE=yes
NAME="System em1"
4.2 执行下面的命令创建一个网桥
[[email protected] ~]# brctl addbr br0
4.3 给网桥添加一个实际存在的物理卡
注意:该网卡必须接有网线;
该操作需要在服务器的本地终端上操作
[[email protected] ~]# brctl addif br0 em1
4.4 查看创建的网桥
[[email protected] ~]# brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.848f69dc43f7 no em1
vnet0
4.5 配置完成之后,重启网络服务,使得新加网卡生效:
[[email protected] network-scripts]# service network restart
4.6 (可选步骤)如果网桥创建有误,可以删除后重新创建
[[email protected] network-scripts]# ifconfig br0 down
[[email protected] network-scripts]# brctl delbr br0
4.7 查看服务器的网络配置
本台服务器的配置如下:
4.8 确定配置的IP已经生效:
在本地的Windows系统的命令行下,ping配置的IP,查看是否能够联通:
5 上载需要安装的操作系统ISO镜像文件
5.1 创建一个文件夹存放ISO镜像文件
[[email protected] network-scripts]# mkdir /images/iso
5.2 创建一个目录放置虚拟机文件
[[email protected] network-scripts]# mkdir /home/vms
5.3 使用FTP工具上传操作系统的ISO镜像到服务器的/images/iso,这里以Cent OS 6.9为例创建并配置一台虚拟机
6 创建raw磁盘格式的虚拟机
6.1 创建qcow2格式磁盘
如下命令创建了一个200GB的硬盘供虚拟机使用,虚拟机将安装在这200GB的空间上;
[[email protected]]#qemu-img create -f qcow2 /home/vms/testvm1.img 300G
6.2 安装虚拟机操作系统
[[email protected] network-scripts]# virt-install --name=testvm1 --ram 8192 --vcpus=8 --disk path=/home/vms/testvm1.img,format=qcow2,size=300,bus=virtio --accelerate --cdrom /images/iso/CentOS-6.9-x86_64-bin-DVD1.iso -d --vnc --vncport=5912 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
其中
--name参数指定需要创建的虚拟机的名称;
--ram参数指定需要创建的虚拟机的内存大小,单位为MB;
--vcpus 参数指定需要创建的虚拟机的CPU核心的数量,该取值不能大于物理服务器拥有的物理CPU的核心总数;
--disk path指定虚拟机放置的位置;
size参数指定创建的虚拟机的磁盘的大小,单位为GB;
--network参数指定所要使用的网桥;
--cdrom参数指定需要使用的操作系统的iso镜像文件;
--vnc –vncport指定VNC服务监听的端口,后面我们使用VNC连接服务器会用到;
--vnclisten 指定VNC服务监听的地址,如果不加此参数,那么VNC服务将监听在本地的127.0.0.1上,只能在本地连接使用,所有,如果要通过远程访问,可以指定该参数为服务器上的一个远程可以访问的IP,或者为0.0.0.0,可以通过服务器的任意一个IP访问;
7 使用VNC连接并完成操作系统的安装
7.1 下载并安装VNC客户端软件,用来连接虚拟机,因为虚拟机刚装好,是没有IP地址的,无法通过网络直接访问;
软件官方下载地址:https://www.tightvnc.com/download.php
7.2 查看VNC监听端口
查看VNC服务是否在运行中:
[[email protected] iso]# ps -ef | grep vnc
root 4475 3977 0 09:55 pts/0 00:00:00 grep vnc
qemu 32289 1 8 Apr08 ? 01:18:08 /usr/libexec/qemu-kvm -name testvm1 -S -M rhel6.6.0 -enable-kvm -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 5ad8d989-6089-fcd3-aefd-6880e5f6069f -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/testvm1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -drive file=/home/vms/testvm1.img,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=24 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:9b:e7:19,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 0.0.0.0:12 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -msg timestamp=on
[[email protected] iso]#
可以看到,VNC服务已经启动,并且进程号为32289;
通过进程号查看VNC服务监听的端口:
[[email protected] iso]# netstat -tlunp | grep 32289
tcp 0 0 0.0.0.0:5912 0.0.0.0:* LISTEN 32289/qemu-kvm
[[email protected] iso]#
如果虚拟机没有启动,那么需要先启动虚拟机,才可以使用VNC连接,使用下面的命令检查虚拟机是否已经启动,如果状态显示为runnning则表示虚拟机已经在启动状态;
[[email protected] ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
7 testvm1 running
如果虚拟机没有启动,那么需要使用下面的命令启动:
[[email protected] ~]# virsh start testvm1
7.3 创建VNC连接
推荐使用免费的TightVNC.
7.4 按照步骤完成CentOS 系统的安装
7.5 安装完成后需要重启,目前发现虚拟机重启后会自动关闭,需要人工启动:
启动后VNC服务才会运行;
[[email protected] iso]# virsh start testvm1
查看虚拟机运行状态:
[[email protected] iso]# virsh list --all
Id 名称 状态
----------------------------------------------------
3 testvm1 running
[[email protected] iso]#
可以看到虚拟机在运行中;
可以通过下面的命令设置虚拟机自动启动:
[[email protected] ~]# virsh autostart testvm1
域 testvm1标记为自动开始
8 配置虚拟机操作系统
8.1 配置IP、掩码、网关信息
可以在VNC中通过窗口图形界面完成这些配置;
配置完成之后,就可以使用SSH远程登录了,不再需要VNC连接了。
查看虚拟机的基本配置信息:
[[email protected] opt]# cat /proc/cpuinfo | grep processor | wc -l
8
[[email protected] opt]#
[[email protected] opt]# cat /proc/meminfo | grep MemTotal
MemTotal: 8059668 kB
[[email protected] opt]#
可以看到,虚拟机的CPU逻辑核有8个,内存为8GB;
查看磁盘信息:可以看到服务器配置了一块硬盘,214.7GB
[[email protected] dev]# fdisk -l
查看磁盘核分区信息:
[[email protected] dev]# df –h
输出如下:
9 在虚拟机中安装mysql5.7
9.1 安装MySQL 5.7
在命令行中执行下面的命令下载配置MySQL yum源的文件:
[[email protected] dev]# wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
然后进行安装:
[[email protected] opt]# rpm -Uvh mysql57-community-release-el6-9.noarch.rpm
安装MySQL5.7 server:
[[email protected] opt]# yum install mysql-community-server
等待安装完毕。
9.2 修改MySQL 默认密码
MySQL初始密码会在第一次启动时记录在MySQL的日志文件中,在日志文件中找到初始密码;
先启动数据库:
[[email protected] opt]# service mysqld start
初始化 MySQL 数据库: [确定]
正在启动 mysqld: [确定]
[[email protected] opt]#
然后在日志文件中查找初始密码:
[[email protected] log]# grep "password" /var/log/mysqld.log
2018-04-10T09:44:44.054175Z 1 [Note] A temporary password is generated for [email protected]: pj_0ktse*?2A
2018-04-10T09:44:50.316855Z 2 [Note] Access denied for user ‘UNKNOWN_MYSQL_USER‘@‘localhost‘ (using password: NO)
[[email protected] log]#
例如,以上输出中,红色斜体字即为MySQL临时密码,可以通过该密码从localhost登录MySQL数据库;
[[email protected] log]#
[[email protected] log]# mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.21
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>
通过下面的命令修改root用户的密码为“Test_1234”:
mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘[email protected]!‘;
Query OK, 0 rows affected (0.00 sec)
9.3 允许远程登录MySQL
mysql> use mysql;
mysql> UPDATE user SET Host=’%’ WHERE user=’root’;
mysql> FLUSH PRIVILEGES;
9.4 重启MySQL服务使配置生效
[[email protected] log]# service mysqld restart
9.5 关闭防火墙
[[email protected] log]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
[[email protected] log]#
9.6 禁止防火墙开机启动
[[email protected] log]# chkconfig iptables off
9.7 安装MySQL Workbench登录数据库,检查是否正常
10 安装nginx 1.12
10.1 安装Nginx所需基础依赖
[[email protected] log]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
10.2 下载解压缩Nginx源码包
[[email protected] log]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
[[email protected] log]# tar zxvf nginx-1.12.2.tar.gz
10.3 编译安装Nginx
[[email protected] nginx-1.12.2]# cd nginx-1.12.2
[[email protected] nginx-1.12.2]# ./configure
[[email protected] nginx-1.12.2]# make install
10.4 启动Nginx
[[email protected] nginx-1.12.2]# cd /usr/local/nginx/sbin
[[email protected] nginx-1.12.2]# cd /usr/local/nginx/sbin
[[email protected] nginx-1.12.2]# ./nginx
在浏览器中输入服务器IP:80访问,如果出现下面的提示,说明Nginx安装成功;
11 安装rabitMQ
11.1 配置rabbitmq.repo源
先需要安装rabbitmq-erlang基础组件,需要配置rabbitmq的repo库
[[email protected] opt]# vim /etc/yum.repos.d/rabbitmq.repo
在这个文件中写入如下内容:
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
11.2 安装erlang
[[email protected] ~]# yum -y install erlang
11.3 安装epel扩展源用来安装socat组件
[[email protected] ~]# yum -y install epel-release
11.4 安装rabbitmq-server
[[email protected] ~]# cd /opt/
[[email protected] ~]#
[[email protected] ~]# yum install rabbitmq-server-3.7.4-1.el6.noarch.rpm
11.5 启动rabbitmq-server
[[email protected] ~]# service rabbitmq-server start
出现如下信息表示启动成功:
Starting rabbitmq-server: SUCCESS
rabbitmq-server.
12 安装redis
12.1 安装基础依赖
[[email protected] opt]# yum install gcc gcc-c++ make zlib-devel readline readline-devel tkutil tk tkutil-devel tk-devel openssl openssl-devel wget vim ntp -y
12.2 下载redis源码包并解压安装:
[[email protected] opt]# cd /opt
[[email protected] opt]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz
[[email protected] opt]# tar zxvf redis-4.0.9.tar.gz
[[email protected] opt]# cd redis-4.0.9
[[email protected] redis-4.0.9]# make && make install
进行测试检查是否OK:
[[email protected] redis-4.0.9]# make test
出现下面的提示证明已经OK!
\o/ All tests passed without errors!
13 公共配置事项
13.1 关闭Linux防火墙
[[email protected] redis-4.0.9]# service iptables stop
[[email protected] redis-4.0.9]# service iptables status
iptables:未运行防火墙。
[[email protected] redis-4.0.9]# iptables -F
[[email protected] redis-4.0.9]# chkconfig iptables off
[[email protected] redis-4.0.9]#
13.2 克隆KVM虚拟机
注意:在宿主机器上操作
13.2.1 在宿主机命令行输入如下命令克隆一台虚拟机
[[email protected] qemu]# virt-clone -o testvm1 -n testvm2 -f /home/vms/testvm5.img
命令说明:
-o 参数指定已经有的虚拟机,需要从此源虚拟机克隆一台新虚拟机;
-n 参数指定需要克隆出来的目标虚拟机的名称;
-f 参数指定克隆出来虚拟机存放的位置以及镜像文件;
13.2.2 克隆完成后修改新虚拟机的配置
需要修改VNC的监听端口,否则因为VNC监听端口冲突,将无法同时启动,配置文件所在路径:/etc/libvirt/qemu/testvm2.xml
修改VNC的监听端口与已有虚拟机的VNC监听端口不一样;
13.2.3 使配置文件生效
[[email protected] qemu]# virsh define /etc/libvirt/qemu/testvm2.xml
13.2.4 启动克隆出来的虚拟机进行配置
[[email protected] qemu]# virsh start testvm2
没有出现错误信息就表示启动成功;
13.2.5 使用修改后的VNC端口连接克隆出来的虚拟机
13.2.6 修改克隆虚拟机的主机名
[[email protected] ~]# vim /etc/sysconfig/network
将HOSTNAME修改为需要的主机名;
使主机名称立即生效:
[[email protected] ~]# hostname testvm2
修改/etc/hosts文件,在127.0.0.1 一行后面添加上主机名:
13.2.7 给克隆出来的虚拟机配置IP
参考本文档8.1章节进行配置;
注意:克隆出来的虚拟机,系统为了防止MAC地址冲突,自动删除源虚拟机的eth0网卡,并且新加了一个名称为Auto eth1的网卡;配置IP需要配置在此网卡上;
13.3 配置MySQL字符集
MySQL需要设置字符集为UTF-8,修改MySQL配置文件,确保有下面的内容:
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8_unicode_ci
init_connect=’SET NAMES utf8’
13.4 配置Nginx反向代理(待补充)
13.5 管理KVM虚拟机的快照
- 给虚拟机创建快照
- 恢复到创建的快照
- 删除快照文件
13.6 Cent OS利用yum安装jdk
- 检查现有的jdk版本
[[email protected] ~]# yum list installed |grep java
以上输出说明现在安装的版本为1.6和1.7的,我们需要的是1.8版本的,那么需要卸载掉旧版本的jdk,重新安装1.8.0版本的jdk;
java-1.6.0-openjdk.x86_64
java-1.7.0-openjdk.x86_64
tzdata-java.noarch 2016j-1.el6 @anaconda-CentOS-201703281317.x86_64/6.9
[[email protected] ~]# - 卸载旧版本的jdk
[[email protected] ~]# yum -y remove java-1.6.0-openjdk*
[[email protected] ~]# yum -y remove java-1.6.0-openjdk*
[[email protected] ~]# yum -y remove tzdata-java.noarch - 安装新版本的jdk
查询当前yum源下面可以安装的jdk版本:
[[email protected] ~]# yum -y list java*
安装1.8.0版本的jdk:
[[email protected] ~]# yum -y install java-1.8.0-openjdk*
查看安装的java版本
[[email protected] ~]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
[[email protected] ~]#
以上是关于KVM虚拟化MySQLNginxRabbitMQRedis组件安装指导的主要内容,如果未能解决你的问题,请参考以下文章