• KVM虚拟化、MySQL、Nginx、RabbitMQ、Redis组件安装指导


    1          检查服务器的配置信息

    1.1     检查服务器的CPU信息

    [root@localhost iso]#cat /proc/cpuinfo | grep name | cut -d: -f2 | uniq -c

    1.2     检查服务器的内存信息

    [root@localhost iso]# cat /proc/meminfo | grep MemTotal

    MemTotal:       82510856 kB

    2          检查服务器是否支持虚拟化

    在远程终端中执行如下面命令,确定CPU是否支持虚拟化:

    [root@localhost iso]#grep -E -o 'vmx|svm' /proc/cpuinfo

    vmx

    vmx

    如果有输出,则证明服务器支持虚拟化。

    3          安装KVM相关基础组件

    3.1     执行下面的命令安装KVM相关基础环境

    [root@localhost iso]#yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer  virt-v2v

    3.2     执行下面的命令安装虚拟机管理工具

    [root@localhost iso]#yum install  libguestfs-tools –y

    4          创建一个网桥

    网桥相当于一个交换机,在物理服务器内部虚拟化出来的多台虚拟机,虚拟机都是默认连接到创建的虚拟网桥上的。

     

    4.1     给网桥创建一个配置文件并配置网络参数

    在Cent OS  6.X下面,网卡配置文件在下面的路径中:/etc/sysconfig/network-scripts

    当前物理服务器只连接了一根网线在一个物理网卡上,该物理网卡在系统中的标识为em1;

    创建一个名称为ifcfg-br0的网桥的配置文件,配置格式如下:

    [root@localhost 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的配置文件:

    [root@localhost network-scripts]# cat ifcfg-em1

    DEVICE="em1"

    ONBOOT="yes"

    BRIDGE="br0"

    BOOTPROTO=none

    NM_CONTROLLED="no"

    DEFROUTE=yes

    NAME="System em1"

    4.2     执行下面的命令创建一个网桥

    [root@localhost ~]# brctl addbr br0

    4.3     给网桥添加一个实际存在的物理卡

    注意:该网卡必须接有网线;

    该操作需要在服务器的本地终端上操作

    [root@localhost ~]# brctl addif br0 em1

     

    4.4     查看创建的网桥

    [root@localhost ~]# brctl show br0

    bridge name    bridge id        STP enabled   interfaces

    br0         8000.848f69dc43f7        no           em1

                                                             vnet0      

    4.5     配置完成之后,重启网络服务,使得新加网卡生效:

    [root@localhost network-scripts]# service network restart

    4.6     (可选步骤)如果网桥创建有误,可以删除后重新创建

    [root@localhost network-scripts]# ifconfig br0 down

    [root@localhost network-scripts]# brctl delbr br0

    4.7     查看服务器的网络配置

    本台服务器的配置如下:

    4.8     确定配置的IP已经生效:

    在本地的Windows系统的命令行下,ping配置的IP,查看是否能够联通:

     

    5          上载需要安装的操作系统ISO镜像文件

    5.1     创建一个文件夹存放ISO镜像文件

    [root@localhost network-scripts]# mkdir /images/iso

    5.2     创建一个目录放置虚拟机文件

    [root@localhost network-scripts]# mkdir /home/vms

    5.3     使用FTP工具上传操作系统的ISO镜像到服务器的/images/iso,这里以Cent OS 6.9为例创建并配置一台虚拟机

    6          创建raw磁盘格式的虚拟机

    6.1     创建qcow2格式磁盘

    如下命令创建了一个200GB的硬盘供虚拟机使用,虚拟机将安装在这200GB的空间上;

    [root@localhostnetwork-scripts]#qemu-img create -f qcow2 /home/vms/testvm1.img 300G

    6.2     安装虚拟机操作系统

    [root@localhost 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服务是否在运行中:

    [root@localhost 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

    [root@localhost iso]#

    可以看到,VNC服务已经启动,并且进程号为32289;

    通过进程号查看VNC服务监听的端口:

    [root@localhost iso]# netstat -tlunp | grep 32289

    tcp        0      0 0.0.0.0:5912                0.0.0.0:*                   LISTEN      32289/qemu-kvm     

    [root@localhost iso]#

     

    如果虚拟机没有启动,那么需要先启动虚拟机,才可以使用VNC连接,使用下面的命令检查虚拟机是否已经启动,如果状态显示为runnning则表示虚拟机已经在启动状态;

    [root@localhost ~]# virsh list --all

    Id    名称                         状态

    ----------------------------------------------------

    7     testvm1                        running

    如果虚拟机没有启动,那么需要使用下面的命令启动:

    [root@localhost ~]# virsh start testvm1

    7.3     创建VNC连接

    推荐使用免费的TightVNC.

     

    7.4     按照步骤完成CentOS 系统的安装

    7.5     安装完成后需要重启,目前发现虚拟机重启后会自动关闭,需要人工启动:

    启动后VNC服务才会运行;

    [root@localhost iso]# virsh start testvm1

    查看虚拟机运行状态:

    [root@localhost iso]# virsh list --all

    Id    名称                         状态

    ----------------------------------------------------

    3     testvm1                        running

     

    [root@localhost iso]#

    可以看到虚拟机在运行中;

    可以通过下面的命令设置虚拟机自动启动:

    [root@localhost ~]# virsh autostart testvm1

    域 testvm1标记为自动开始

    8          配置虚拟机操作系统

    8.1     配置IP、掩码、网关信息

    可以在VNC中通过窗口图形界面完成这些配置;

     

     

     

    配置完成之后,就可以使用SSH远程登录了,不再需要VNC连接了。

    查看虚拟机的基本配置信息:

    [root@testvm1 opt]# cat /proc/cpuinfo | grep processor | wc -l

    8

    [root@testvm1 opt]#

    [root@testvm1 opt]# cat /proc/meminfo  | grep MemTotal

    MemTotal:        8059668 kB

    [root@testvm1 opt]#

    可以看到,虚拟机的CPU逻辑核有8个,内存为8GB;

    查看磁盘信息:可以看到服务器配置了一块硬盘,214.7GB

    [root@testvm1 dev]# fdisk -l

     

    查看磁盘核分区信息:

    [root@testvm1 dev]# df –h

    输出如下:

     

    9          在虚拟机中安装MySQL5.7

    9.1     安装MySQL 5.7

    在命令行中执行下面的命令下载配置MySQL yum源的文件:

    [root@testvm1 dev]# wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

    然后进行安装:

     [root@testvm2 opt]# rpm -Uvh mysql57-community-release-el6-9.noarch.rpm 

    安装MySQL5.7 server:

    [root@testvm2 opt]# yum install mysql-community-server

    等待安装完毕。

    9.2     修改MySQL 默认密码

    MySQL初始密码会在第一次启动时记录在MySQL的日志文件中,在日志文件中找到初始密码;

    先启动数据库:

    [root@testvm2 opt]# service mysqld start

    初始化 MySQL 数据库:                                      [确定]

    正在启动 mysqld:                                          [确定]

    [root@testvm2 opt]#

    然后在日志文件中查找初始密码:

    [root@testvm2 log]# grep "password" /var/log/mysqld.log

    2018-04-10T09:44:44.054175Z 1 [Note] A temporary password is generated for root@localhost: pj_0ktse*?2A

    2018-04-10T09:44:50.316855Z 2 [Note] Access denied for user 'UNKNOWN_MYSQL_USER'@'localhost' (using password: NO)

    [root@testvm2 log]#

    例如,以上输出中,红色斜体字即为MySQL临时密码,可以通过该密码从localhost登录MySQL数据库;

    [root@testvm2 log]#

    [root@testvm2 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 'Allsense@123!';

    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服务使配置生效

    [root@testvm2 log]# service mysqld restart

    9.5     关闭防火墙

    [root@testvm2 log]# service iptables stop

    iptables:将链设置为政策 ACCEPTfilter                    [确定]

    iptables:清除防火墙规则:                                 [确定]

    iptables:正在卸载模块:                                   [确定]

    [root@testvm2 log]#

    9.6     禁止防火墙开机启动

    [root@testvm2 log]# chkconfig iptables off

    9.7     安装MySQL Workbench登录数据库,检查是否正常

    10      安装Nginx 1.12

    10.1  安装Nginx所需基础依赖

    [root@testvm2 log]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

    10.2  下载解压缩Nginx源码包

    [root@testvm2 log]# wget http://nginx.org/download/nginx-1.12.2.tar.gz

    [root@testvm2 log]# tar zxvf nginx-1.12.2.tar.gz

    10.3  编译安装Nginx

    [root@testvm2 nginx-1.12.2]# cd nginx-1.12.2

    [root@testvm2 nginx-1.12.2]# ./configure

    [root@testvm2 nginx-1.12.2]# make install

    10.4  启动Nginx

    [root@testvm2 nginx-1.12.2]# cd /usr/local/nginx/sbin

    [root@testvm2 nginx-1.12.2]# cd /usr/local/nginx/sbin

    [root@testvm2 nginx-1.12.2]# ./nginx

    在浏览器中输入服务器IP:80访问,如果出现下面的提示,说明Nginx安装成功;

    11      安装rabitMQ

    11.1  配置rabbitmq.repo源

    先需要安装rabbitmq-erlang基础组件,需要配置rabbitmq的repo库

    [root@testvm2 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

    [root@testvm2 ~]# yum -y install erlang

    11.3  安装epel扩展源用来安装socat组件

    [root@testvm2 ~]# yum -y install epel-release

    11.4  安装rabbitmq-server

    [root@testvm2 ~]# cd /opt/

    [root@testvm2 ~]#  

    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.4/rabbitmq-server-3.7.4-1.el6.noarch.rpm

     

    [root@testvm2 ~]# yum install rabbitmq-server-3.7.4-1.el6.noarch.rpm

    11.5  启动rabbitmq-server

    [root@testvm2 ~]# service rabbitmq-server start

    出现如下信息表示启动成功:

    Starting rabbitmq-server: SUCCESS

    rabbitmq-server.

    12      安装redis

    12.1  安装基础依赖

    [root@testvm2 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源码包并解压安装:

    [root@testvm2 opt]# cd /opt

    [root@testvm2 opt]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz

    [root@testvm2 opt]# tar zxvf redis-4.0.9.tar.gz

    [root@testvm1 opt]# cd redis-4.0.9

    [root@testvm2 redis-4.0.9]# make && make install

     

    进行测试检查是否OK

     

    [root@testvm2 redis-4.0.9]# make test

    出现下面的提示证明已经OK!

    o/ All tests passed without errors!

    13      公共配置事项

    13.1  关闭Linux防火墙

    [root@testvm2 redis-4.0.9]# service iptables stop

    [root@testvm2 redis-4.0.9]# service iptables status

    iptables:未运行防火墙。

    [root@testvm2 redis-4.0.9]# iptables -F

    [root@testvm2 redis-4.0.9]# chkconfig iptables off

    [root@testvm2 redis-4.0.9]#

    13.2  克隆KVM虚拟机

    注意:在宿主机器上操作

    13.2.1       在宿主机命令行输入如下命令克隆一台虚拟机

    [root@localhost 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       使配置文件生效

    [root@localhost qemu]# virsh define /etc/libvirt/qemu/testvm2.xml

    13.2.4       启动克隆出来的虚拟机进行配置

    [root@localhost qemu]# virsh start testvm2

    没有出现错误信息就表示启动成功;

    13.2.5       使用修改后的VNC端口连接克隆出来的虚拟机

    13.2.6       修改克隆虚拟机的主机名

    [root@testvm2 ~]# vim /etc/sysconfig/network

    HOSTNAME修改为需要的主机名;

    使主机名称立即生效:

    [root@testvm2 ~]# 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

    1.  检查现有的jdk版本

      [root@testvm2 ~]# yum list installed |grep java 
      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
      [root@testvm2 ~]#

       以上输出说明现在安装的版本为1.6和1.7的,我们需要的是1.8版本的,那么需要卸载掉旧版本的jdk,重新安装1.8.0版本的jdk;
    2. 卸载旧版本的jdk
      [root@testvm2 ~]# yum -y remove java-1.6.0-openjdk*
      [root@testvm2 ~]# yum -y remove java-1.6.0-openjdk*
      [root@testvm2 ~]# yum -y remove tzdata-java.noarch
    3. 安装新版本的jdk
      查询当前yum源下面可以安装的jdk版本:
      [root@testvm2 ~]# yum -y list java* 
      安装1.8.0版本的jdk:

      [root@testvm2 ~]# yum -y install java-1.8.0-openjdk*

    查看安装的java版本

    [root@testvm2 ~]# 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)
    [root@testvm2 ~]#

  • 相关阅读:
    擦边上100分,我的托福考试总结
    如何写Java文档注释(Java Doc Comments)
    EC读书笔记系列之6:条款11 在operator=中处理自我赋值
    Python核心编程读笔 1
    安装Ubuntu小计
    U盘安装win7+CentOS7双系统
    EC读书笔记系列之5:条款9、条款10
    EC读书笔记系列之4:条款8 别让异常逃离析构函数
    EC读书笔记系列之3:条款5、条款6、条款7
    EC读书笔记系列之2:条款4 确定对象被使用前已先被初始化
  • 原文地址:https://www.cnblogs.com/qqmb/p/9037632.html
Copyright © 2020-2023  润新知