目 录CONTENT

文章目录

ansible配置IDC集群实验01

cplinux98
2022-11-10 / 0 评论 / 0 点赞 / 600 阅读 / 1,354 字 / 正在检测是否收录...

00:文章简介

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

01:基础环境介绍

1.1:基础环境规划图

image-20210614142500055

1.2:基础环境TOP图

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

1.3:主机规划图

基础架构中主机的地址规划信息
记录MAC地址是方便后续装机使用
image-20210614143743266

02:基础环境配置

2.1:为ESXi主机分配内网交换机

类似于VMware workstation的仅主机模式

image-20210614142816224

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

image-20210614142957520

2.3:创建一个虚拟机模板

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

image-20210614143323465

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:创建集群内部虚拟机

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

image-20210614145410727

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
0

评论区