前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS搭建云服务平台

CentOS搭建云服务平台

原创
作者头像
夜雨飘零
修改2023-09-21 19:23:43
4.6K0
修改2023-09-21 19:23:43
举报
文章被收录于专栏:CSDN博客CSDN博客

原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历

目录

@toc

前言

最近在学习在centOS上搭建一个云服务平台,所以写下该文章当做笔者的学习笔记,提供给大家一起学习。虽然我们没有办法实现像百度云、腾讯云、阿里云那么强大的云服务平台,但是可以学习它们这些思维,做一个简单的云平台给自己的团队或公司使用。

创建主机

我们的云服务器平台的结构是这样的:

这里写图片描述
这里写图片描述

这个平台是在一个主机,然后在主机中创建多个虚拟机给用户使用,所以我们首先要有一个主机。这个主机理论上是真正的物理机,同时有着非常多的物理资源,比如内存,磁盘,CPU等等。为了学习,我们在VMware中创建一个机器当做我们的主机,使用的系统是CentOS6.5。我们先要下载这个镜像,笔者使用的镜像是CentOS-6.5-x86_64-minimal.iso这个镜像,其下载地址是:http://vault.centos.org/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso

我们在VMware创建一个新的虚拟机,操作如小:

这里写图片描述
这里写图片描述

然后选择经典模型开始创建:

这里写图片描述
这里写图片描述

接下来是选择第三个的稍后安装操作系统:

这里写图片描述
这里写图片描述

选择的系统类型是Linux,具体的是CentOS 64位:

这里写图片描述
这里写图片描述

然后是创建虚拟机的名字和磁盘所在的位置:

这里写图片描述
这里写图片描述

这一步是硬件选择,不要急着下一步,我们要对硬件做一些处理:

这里写图片描述
这里写图片描述

我们尽可能选择大的内存,和CPU的个数,但是也不能超过本身物理机的值。默认的网络是NAT的,不用修改:

这里写图片描述
这里写图片描述

最后是选择镜像,就是选择刚才我们下载的CentOS-6.5-x86_64-minimal.iso镜像:

这里写图片描述
这里写图片描述

关闭之后就回到了这个,直接完成就可以了。

这里写图片描述
这里写图片描述

完成之后就可以启动虚拟机了。

这里写图片描述
这里写图片描述

启动之后,选择第一个开始安装镜像。顺便说一下,解锁鼠标的Ctrl+Alt。

这里写图片描述
这里写图片描述

这里选择跳过:

这里写图片描述
这里写图片描述

然后直接一步就可以了:

这里写图片描述
这里写图片描述

这里选系统的语言,比如笔者选择的是中文:

这里写图片描述
这里写图片描述

这样选择的是键盘的布局,我们的键盘基本上都是一样的布局方式,所以直接默认就可以了:

这里写图片描述
这里写图片描述

这里也是直接默认:

这里写图片描述
这里写图片描述

忽略所有数据,应该我们的虚拟磁盘本身就没有数据:

这里写图片描述
这里写图片描述

这里是修改主机名的,笔者就使用默认的主机名:

这里写图片描述
这里写图片描述

这样是选择时区:

这里写图片描述
这里写图片描述

然后是创建系统密码,长度不少于6

这里写图片描述
这里写图片描述

最后选择使用所有空间,开始写入数据:

这里写图片描述
这里写图片描述

等待安装,一段时间后就可以安装成功了:

这里写图片描述
这里写图片描述

配置主机网络

安装完成之后,还不能连接网络,所以我们要配置网络,首先我要先看看虚拟机的网段:

这里写图片描述
这里写图片描述

在这里可以看到VMnet8的网段为:192.168.204.0

这里写图片描述
这里写图片描述

然后在系统的终端输入以下命令,编辑网络配置:

代码语言:txt
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改内容如下,修改ONBOOT=yes,BOOTPROTO=static,增加IP地址、子网掩码、网关地址、DNS1:

这里写图片描述
这里写图片描述

最后重启一下网络:

代码语言:txt
复制
service network restart

最后可以使用ping测试网络是否正常:

代码语言:txt
复制
ping www.baidu.com

安装环境

使用Xshell

为了方便操作,笔者使用Xshell连接CentOS,可以直接在Xshell上操作CentOS,操作如下:

  • 下载Xshell
  • 启动 Xshell 创建新连接,如下:
    这里写图片描述
    这里写图片描述
  • 输入账号和密码就可以连接成功了,在Xshell上跟在原系统的终端是一样的

修改系统镜像源

为了加快下载资源的速度,笔者把下载资源的地址改成阿里巴巴的镜像源,操作如下:

  1. 首先备份原来的CentOS-Base.repomv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. 安装wget命令,命令如下:yum -y install wget
  3. 下载镜像源,命令如下:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
  4. 最后生成缓存,命令如下:yum makecache

开始安装环境

安装依赖环境,只需要一条命令,命令入下:

代码语言:txt
复制
yum -y install qemu-kvm  virt-manager libvirt libvirt-python python-virtinst bridge-utils

安装完成之后,需求启动一个服务方便之后的安装虚拟机:

代码语言:txt
复制
service libvirtd restart

然后关闭防火墙,方便之后连接虚拟机,命令如下:

代码语言:txt
复制
service iptables stop

创建一个文件夹用来保存虚拟机的镜像和虚拟磁盘的,命令如下:

代码语言:txt
复制
mkdir /kvmtest

安装一个上传下载的工具,用于上传CentOS镜像,安装命令如下:

代码语言:txt
复制
yum -y install lrzsz

然后使用命令rz把CentOS镜像上传到/kvmtest,命令如下:

代码语言:txt
复制
cd /kvmtest
rz

安装虚拟机

现在安装虚拟机是在CentOS系统上安装的虚拟机,这个才是真正的云服务器。

  • 创建虚拟磁盘,命令如下:qemu-img create -f qcow2 /kvmtest/centos-6.5.qcow2 10G
  • 然后就可以创建虚拟机,第一行是指定虚拟机的名称和内存大小;第二行是指定CPU个数;第三行是指定系统镜像;第四行是指定虚拟磁盘的位置,也就是上一步创建的虚拟磁盘。virt-install --virt-type kvm --name centos-6.5 --ram 1024 \ --vcpus 1 \ --cdrom=/kvmtest/CentOS-6.5-x86_64-minimal.iso \ --disk /kvmtest/centos-6.5.qcow2,format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=rhel6
  • 最后使用vnc完成安装,当执行上面的命令之后,我们需要下载一个vnc,官网下载链接为:https://www.realvnc.com/en/connect/download/vnc/ ,也可以百度搜索vnc-4_1_3-x86_win32_viewer下载,然后打开软件开始连接。IP地址是主机的地址,端口是5900,如果还有更多的虚拟机,端口就自加1,如:5901。如果连接不成功,而虚拟机有启动了,那可能是防火墙没关闭,需要关闭防火墙。
    这里写图片描述
    这里写图片描述
  • 连接虚拟机之后,就可安装了,安装过程跟一开始安装主机的过程一样,这里集不重复介绍了。顺便提一下,这个软件只能在因为输入法下输入。
    这里写图片描述
    这里写图片描述

安装完成之后,还要重新启动,启动命令如下:

代码语言:txt
复制
virsh start centos-6.5

既然说到virsh命令,那就说说virsh命令的使用:

代码语言:txt
复制
virsh list --all             # 显示本地活动虚拟机
virsh start <虚拟机名称>      # 启动名字为ubuntu的非活动虚拟机
virsh create <虚拟机名称.xml> # 创建虚拟机(创建后,虚拟机立即启动)
virsh resume <虚拟机名称>     # 启动暂停的虚拟机
virsh shutdown <虚拟机名称>   # 正常关闭虚拟机
virsh destroy <虚拟机名称>    # 强制关闭虚拟机
virsh dominfo <虚拟机名称>    # 显示虚拟机的基本信息
virsh dumpxml <虚拟机名称>    # 显示虚拟机的当前配置文件
virsh setmem <虚拟机名称> 51200 # 给不活动虚拟机设置内存大小
virsh setvcpus <虚拟机名称> 4 # 给不活动虚拟机设置cpu个数
virsh edit <虚拟机名称>       # 编辑配置文件(一般用在刚定义完VM)

配置虚拟机网络

同样使用vi编辑网络配置文件:

代码语言:txt
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0

然后删除物理地址和UUID,并修改ONBOOT=yes,修改后如下:

这里写图片描述
这里写图片描述

最后重启一下网络,命令如下:

代码语言:txt
复制
service network restart

测试网络是否可以正常使用,使用ping测试:

代码语言:txt
复制
ping www.baidu.com

到这里就完成了虚拟机的安装,我们可以使用vnc连接我们的虚拟机,使用我们的虚拟机。

在介绍virsh命令的时候,有介绍到使用shutdown在主机上关闭虚拟机,但是并不能直接使用,还需要在虚拟机中安装acpid,并启动acpid,同时还添加到开机服务中。命令如下:

代码语言:txt
复制
yum install acpid
service acpid start
chkconfig acpid on

这样就可以在主机上使用shutdown关闭虚拟机了。

克隆虚拟机

如果需要多个虚拟机,但有想一个一个安装,可以复制之前文件,然后做适当的修改就可以快速创建一个新的虚拟机了。

  • 复杂虚拟磁盘,在/kvmtest/下我们有创建一个虚拟磁盘centos-6.5.qcow2,我们可以复制这个文件并改名,命令如下:cp centos-6.5.qcow2 centos-6.5-2.qcow2
  • 然后进入到/etc/libvirt/qemu目录下,复制centos-6.5.xml并改名,命令如下:cp centos-6.5.xml centos-6.5-2.xml
  • 然后修改centos-6.5-2.xml中的内容,修改名称跟之前的复制文件命名一样,然后删除uuid。修改虚拟磁盘的位置,指定上面复制的虚拟磁盘。删除虚拟机物理地址。如下:
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
  • 最后创建虚拟机,命令如下:virsh create centos-6.5-2.xml

这样就已经创建一个虚拟机了,使用命令virsh list --all查看:

这里写图片描述
这里写图片描述

不过还不能正常连接网络,还要删除一个文件并重启网络服务:

代码语言:txt
复制
rm -rf /etc/udev/rules.d/70-persistent-net.rules
service network restart

这样就完整克隆了一个虚拟机了。

网络桥接

我们在使用虚拟机的时候,是使用vnc连接主机IP地址加端口号,通过主机来映射到虚拟机的。这是很不合理的,比如现在的腾讯云等的云服务器都是直接连接服务器的IP地址的,所以我们要对虚拟机的网络进行处理,使得它可以在外界直接访问。因为虚拟机现在是通过路由转换的,所以外界是不能够直接访问到虚拟机的,我们要把它的网络修改成桥接的方式,这才能在外界直接访问和连接这个虚拟机。

修改主机网络配置

进入到该目录下,准备对网络文件进行配置:

代码语言:txt
复制
cd /etc/sysconfig/network-scripts/

然后复制原来的网络配置文件,方便之后的修改:

代码语言:txt
复制
cp ifcfg-eth0 ifcfg-br100

然后编辑原来的网络配置文件vi ifcfg-eth0,修改如下,注销无用的配置,注意添加了BRIDGE和修改了BOOTPROTO=none

代码语言:txt
复制
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
# NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br100
# IPADDR=192.168.171.127
# NETNASK=255.255.255.0
# GATEWAY=192.168.171.2
# DNS1=192.168.171.2

然后编辑原来的网络配置文件vi ifcfg-br100,注意笔者修改了DEVICETYPE,IP地址还是原来的IP地址,不用修改:

代码语言:txt
复制
DEVICE=br100
TYPE=Bridge
ONBOOT=yes
# NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.171.127
NETNASK=255.255.255.0
GATEWAY=192.168.171.2
DNS1=192.168.171.2

然后重启网络服务,命令如下:

代码语言:txt
复制
service network restart

最后可以使用命令ifconfig查看网络是否配置成功。

修改虚拟机网络配置

在主机上编辑虚拟机的配置文件,主要是修改网络配置,在虚拟机关闭后操作。命令如下:

代码语言:txt
复制
virsh edit centos-6.5

主要是修改以下这些配置文件,其中修改type='bridge',然后删除mac地址,这里为了方便读者观察,显示在这里,实际是删除的了,每次重启虚拟机都会自动生成的。最后修改<source bridge='br100'/>,修改后如下:

代码语言:txt
复制
    <interface type='bridge'>
      <mac address='52:54:00:27:5a:65'/>
      <source bridge='br100'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

修改完成之后,启动虚拟机,命令如下:

代码语言:txt
复制
virsh start centos-6.5

然后关闭防火墙,因为接下来还要使用vnc来连接虚拟机,关闭防火墙命令如下:

代码语言:txt
复制
service iptables stop

之后使用vnc连接虚拟机,主要主机的IP地址和端口号。连接之后,删除虚拟机的网络规则,命令如下:

代码语言:txt
复制
rm -rf /etc/udev/rules.d/70-persistent-net.rules

删除这个文件之后,可以重启一下虚拟机,使用命令init 6进行重启。

重启虚拟机之后,使用ifconfig查看网络是否配置成功,然后使用ping命令尝试ping外网,如:

代码语言:txt
复制
ping www.baidu.com

如果访问外网正常,那使用Xshell连接我们所创建的虚拟机,如何成功连接,那就达到我们的需求了,真正创建一个云服务器了。

多个云服务器到底有什么用呢,在下一篇文章《在CentOS上使用Nginx和Tomcat搭建高可用高并发网站》介绍如何使用多个机器搭建一个高可用高并发的网站服务器,这种情况下就需要多个服务器了,这种情况下就可以使用云服务平台了。

注意

这里要说一下的是,我们为了方便外界可以访问到服务器的端口,我们把防火墙关闭了,但是这种是非常不安全的。所以我们可以单独开放某一端口,比如我们要开放MySQL数据库的3306端口号,操作如下:

编辑防火墙配置文件:

代码语言:txt
复制
vim /etc/sysconfig/iptables

添加以下信息:

代码语言:txt
复制
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

如下图所示:

这里写图片描述
这里写图片描述

保存退出,最后重启防火墙:

代码语言:txt
复制
service iptables restart

开放其他端口也是同样的操作。

参考资料

  1. https://opsx.alibaba.com/mirror

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 前言
  • 创建主机
  • 配置主机网络
  • 安装环境
    • 使用Xshell
      • 修改系统镜像源
        • 开始安装环境
        • 安装虚拟机
        • 配置虚拟机网络
        • 克隆虚拟机
        • 网络桥接
          • 修改主机网络配置
            • 修改虚拟机网络配置
            • 注意
            • 参考资料
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档