模拟真实企业架构之数据中心集群搭建

2021年6月14日 71点热度 0人点赞 0条评论

文章简介

本文介绍基于真实的企业架构模拟搭建了一套企业级数据中心集群,集群通过VMware虚拟化实现,本文涉及了:cobbler自动装机、jump跳板机、内网yum仓库、路由器等重要机器安装部署。

一、基础环境介绍

(一)基础环境TOP图

image-20210614142500055

(二)基础环境配置

1、为ESXi主机分配内网交换机

类似于VMware workstation的仅主机模式

image-20210614142816224

2、根据虚拟交换机创建端口组

image-20210614142957520

3、创建一个虚拟机模板

配置为1c2g20g,虚拟机网卡分配到10.10.100.0的端口组上,方便后续创建虚拟机使用

image-20210614143323465

二、基础架构介绍

(一)基础架构TOP图

本次模拟的是标准企业web架构,使用了LVS四层负载+nginx7层代理+web集群+后端redis缓存+MySQL+NFS等等

image-20210614143407674

(二)基础架构规划

基础架构中主机的地址规划信息

记录MAC地址是方便后续装机使用

image-20210614143743266

三、创建基层服务

(一)route内网路由器

1、创建虚拟机

创建1c2g虚拟机,安装CentOS7最小化系统

2、初始配置

#关闭防火墙和selinux
[root@route ~]# systemctl stop firewalld
[root@route ~]# systemctl disable firewalld
[root@route ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
#设置主机名
[root@route ~]# hostnamectl set-hostname route
#配置网卡
[root@route ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=172.20.254.192
PREFIX=16
GATEWAY=172.20.0.1
DNS1=223.5.5.5

[root@route ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=10.10.100.254
PREFIX=24
#重启以让规则生效
[root@route ~]# reboot

3、配置iptables转发

#配置内核转发
[root@route ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@route ~]# sysctl -p
#配置SNAT使内部主机可以上网
[root@route ~]# iptables -t nat -A POSTROUTING -s 10.10.100.0/24 -j SNAT --to 172.20.254.192
#保存规则
[root@route ~]# iptables-save > /etc/sysconfig/ip_config
#创建别名
[root@route ~]# vi ~/.bashrc
alias ipsave='iptables-save > /etc/sysconfig/ip_config'
alias iprestore='iptables-restore < /etc/sysconfig/ip_config'
#使服务生效
[root@route ~]# source $_

 

(二)yum仓库服务器

1、搭建服务

相关配置查看之前的文章

搭建企业级应用之yum仓库-基础版

不搭建本地yum服务器可以使用公网yum仓库,后面的roles里自己修改一下即可

(三)cobbler自动化装机

1、搭建服务

相关配置查看cobbler装机篇

搭建企业应用之cobbler自动装机服务

2、重要部分配置

ks文件

install
text
keyboard 'us'
url --url=$tree
firstboot --enable
ignoredisk --only-use=sda
rootpw --plaintext 123456
lang en_US
auth  --useshadow  --passalgo=sha512
selinux --disabled
skipx


firewall --disabled
network  --bootproto=dhcp --device=eth0 --onboot=on 
reboot
timezone Asia/Shanghai
bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda
clearpart --all --initlabel
zerombr
autopart --type=lvm

%packages
@^minimal
@core
wget

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end
%post
cd /home
wget http://10.10.100.252/cobbler/pub/message.txt
wget http://10.10.100.252/cobbler/pub/auto.sh
chmod 777 auto.sh
sh auto.sh
mkdir /root/.ssh
cat >/root/.ssh/authorized_keys << EOF
ssh-rsa 
....此处为ansible的免密登录使用的公钥,忽略。
EOF
chmod -R 0600 /root/.ssh
%end

分配IP模板文件

[root@cobbler ~]# cat /var/www/cobbler/pub/message.txt 
#mac,name,ip
00:50:56:8d:63:f1,Ib01,10.10.100.5
00:50:56:8d:a5:3e,Ib02,10.10.100.6
00:50:56:a9:75:4b,proxy01,10.10.100.11
00:50:56:a9:a1:8e,proxy02,10.10.100.12
00:50:56:a9:c5:9c,proxy03,10.10.100.13
00:50:56:a9:f5:d5,web01,10.10.100.21
00:50:56:a9:8c:11,web02,10.10.100.22
00:50:56:a9:55:61,web03,10.10.100.23
00:50:56:a9:ff:d3,nfs,10.10.100.31
00:50:56:a9:56:a6,redis01,10.10.100.41
00:50:56:a9:b2:ea,mysql01,10.10.100.51
00:50:56:a9:9b:c4,dns-master,10.10.100.91
00:50:56:a9:45:ac,dns-slave,10.10.100.92
00:50:56:a9:e5:f0,dns-son,10.10.100.93

3、创建集群内部虚拟机

使用模板进行创建虚拟机,创建好之后虚拟机开机自动装机,装机后可以关机创建一个快照,防止后续操作出现问题。

image-20210614145410727

(四)jump跳板机

1、搭建服务

查看jump搭建篇

搭建企业应用之teleport jump跳板机

2、批量上传主机配置

根据搭建篇里的模板将上面的机器的信息录入,然后上传到jump里。

(五)ansible控制节点

1、创建虚拟机

这里可以使用cobbler手动部署

2、基本配置

#配置主机名
[root@localhost ~]# hostnamectl set-hostname ansible
#配置网卡
[root@ansible ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.10.100.3
PREFIX=24
GATEWAY=10.10.100.254
DNS1=223.5.5.5

3、配置ansible.cfg

只贴了修改部分

[root@ansible root]# mkdir ansible
[root@ansible root]# cp /etc/ansible/ansible.cfg /root/ansible/
[root@ansible root]# cd ansible
[root@ansible ansible]# vim ansible.cfg
inventory      = ./hosts #指定当前目录下的hosts

4、配置hosts

[root@ansible ansible]# cat hosts 
[Ibservers]
10.10.100.[5:6]

[proxyservers]
10.10.100.[11:13]

[webservers]
10.10.100.[21:23]

[nfsservers]
10.10.100.31

[redisserver]
10.10.100.41

[mysqlservers]
10.10.100.51

[dnsservers]
10.10.100.[91:93]

5、检测主机是否存活

[root@ansible ansible]# ansible all -m ping

6、创建roles基本目录

[root@ansible ansible]# mkdir roles/{base,redis,mysql,nginx,lvs,proxy,dns,php}/{tasks,handlers,templates,files,meta,vars} -p

 

小李

学无止境,勇攀高峰。