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

1.2:基础环境TOP图
本次模拟的是标准企业web架构,使用了LVS四层负载+nginx7层代理+web集群+后端redis缓存+MySQL+NFS等等
1.3:主机规划图
基础架构中主机的地址规划信息
记录MAC地址是方便后续装机使用
02:基础环境配置
2.1:为ESXi主机分配内网交换机
类似于VMware workstation的仅主机模式

2.2:根据虚拟交换机创建端口组

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

03:创建基层服务
3.1:route内网路由器
3.1.1:创建虚拟机
创建1c2g虚拟机,安装CentOS7最小化系统
3.1.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.1.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 $_
3.2:yum仓库服务器
相关配置查看自建yum仓库篇,不搭建本地yum服务器可以使用公网yum仓库,后面的roles里自己修改一下即可
3.3:cobbler自动化装机
3.3.1:搭建服务
相关配置查看cobbler装机篇
3.3.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
3.3.3:分配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.3.4:创建集群内部虚拟机
使用模板进行创建虚拟机,创建好之后虚拟机开机自动装机,装机后可以关机创建一个快照,防止后续操作出现问题。

3.4:jump跳板机
3.4.1:搭建服务
查看jump搭建篇
3.4.2:批量上传主机配置
根据搭建篇里的模板将上面的机器的信息录入,然后上传到jump里。
3.5:ansible控制节点
3.5.1:创建虚拟机
这里可以使用cobbler手动部署
3.5.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.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
3.5.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]
3.5.5:检测主机是否存活
[root@ansible ansible]# ansible all -m ping
3.5.6:创建roles基本目录
[root@ansible ansible]# mkdir roles/{base,redis,mysql,nginx,lvs,proxy,dns,php}/{tasks,handlers,templates,files,meta,vars} -p
评论区