任务
创建虚拟机,为实验环境做准备
前言
-创建模板机,设置双网卡,主机名,静态ip地址
-克隆该机器,克隆9台,且根据文档,设置好主机名,ip地址
服务器分工
1.用户、顾客(浏览器)
访问网站的用户请求
2.防火墙、保安(iptables)
设定防火墙策略、防火墙规则,请求的进入、响应的出口,针对ip、port的流量控制
3.负载均衡服务器、迎宾服务员(nginx)
对用户的请求进行调度、纷发
4.web服务器,点餐前台服务员(nginx)
接收用户请求、处理、响应用户请求,返回服务器资料
5.数据库服务器、厨房后厨仓库(mysql)
存储网站的动态数据、提供读写数据功能
6.存储服务器、粮仓仓库(nfs)
存储图片、音频、视频、各种附件等容量较大的静态资源
7.备份服务器、粮仓仓库二号(rsync+crond定时备份、rsync+inotify实时备份)
二次备份所有数据,存储图片、音频、视频、各种附件等容量较大的静态资源
8.缓存服务器、自助取餐(redis)
数据存储在内存里,提供内存的高速数据读写
以及减轻mysql服务器的读写压力
9.ansible服务器、调度总台(ansible)
批量化管理所有的服务器
步骤一览
1.创建新虚拟机,设置为模板机(当做其他机器的克隆机器)
添加2块网卡
一个是NAT
需要你去修改,vmware的网络编辑器,设置为 10.0.0.xx 网段
一个选LAN(纯本地局域网,模拟内网)
需要你自己添加一个LAN网段,是172.16.1 这个
网卡设置完了之后,还得修改linux的安装启动参数,修改网卡的名字
centos7默认是 ens33
按照如下操作,修改为eth0
1.在开机选择画面,输入上下左右
2.按下tab键,输入如下指令,修改启动参数
2.对该模板机,进行系统优化初始化
3. 对该模板机,进行快照备份
4.基于该模板机,克隆出其他的机器,且修改
- 主机名
- ip地址
5.其余机器初始化后,记得做好快照
主机列表:
服务器作用 主机名 外网地址 内网地址 运行软件
管理机 master-61 10.0.0.61 172.16.1.61 Ansible/zabbix/jumpserver/openvpn
负载均衡服务器 slb-5 10.0.0.5 172.16.1.5 nginx/keepalived
负载均衡服务器 slb-6 10.0.0.6 172.16.1.6 nginx/keepalived
web服务器 web-7 10.0.0.7 172.16.1.7 nginx/php
web服务器 web-8 10.0.0.8 172.16.1.8 nginx/tomcat
web服务器 web-9 10.0.0.9 172.16.1.9 nginx/php
存储服务器 nfs-31 10.0.0.31 172.16.1.31 nfs/rsyncd/lsyncd
备份服务器 rsync-41 10.0.0.41 172.16.1.41 nfs/rsyncd/lsyncd
数据库服务器 db-51 10.0.0.51 172.16.1.51 mysql/redis
注意去理解架构图,生产环境下、只有最外层的负载均衡设备,才能对接到公网流量,因此需要配置公网ip地址;
其他功能的服务器,只需要单网卡,内网IP即可;
外网地址
- 模拟互联网的公网ip
- 你可以直接使用windows,ping通该地址,(xshell)ssh连接该地址(服务器)
内网地址
- 模拟服务器的内网,局域网环境
- 无法直接通过xshell连接该服务器
配置规划
系统 centos7
内存 至少2G/1c
网卡
eth0,使用NAT、模拟外网环境 ,网段是10.0.0.xx,网关10.0.0.254
eth1,使用LAN区段,模拟内网环境,网段是172.16.1.xx,网关172.16.1.254
硬盘容量,40G
综合架构实践
1.创建新虚拟机(模板机)
系统 centos7
内存 至少2G/1c(特殊情况,给1c/1g也够了)
网卡
eth0,使用NAT、模拟外网环境 ,网段是10.0.0.xx
eth1,使用LAN区段,模拟内网环境,网段是172.16.1.xx
硬盘容量,40G
2.安装centos7
1.创建模板机,修改网络配置
2.添加内网网卡
1.进入内核选择界面时,按上下方向键,取消自动选择
2.输入tab键,复制粘贴进去如下代码
net.ifnames=0 biosdevname=0
3.输入回车,启动
4.请注意,必须是英文,以后再也别用中文了,因为你要看日志
5.只需要修改亚洲上海时区,其他全部默认
6.网络设置、修改静态ip地址、设置主机名
模板机,主机名 muban
ip,10.0.0.100
网关,10.0.0.254
网络配置按如下操作修改:
1.点击虚拟网络编辑器
2.点击更改设置
3.确保你的配置和我一样,并点击NAT设置
4.修改NAT设置,修改网关IP,然后点击确定
5.应用并确定
再添加另一块网卡(充当内网环境的网卡)
1.添加网卡
2.设置为LAN区段并选择子网网段,如果没有就自己添加
此时可以进入装机界面了
1.开启虚拟机,在选择界面输入tab,然后空格,输入net.ifnames=0 biosdevname=0,修改网卡名字,回车。
2.选择英语,更改时区,关闭内核崩溃机制
3.修改网络参数
修改主机名,然后选择第一张网卡eth0,修改配置
选择General,勾选Automatically
选择IPv4,按图修改,点击保存
4.保存后,检查参数是否正确以及是否连接,完成
5.开始安装
6.安装完成后进行ssh连接
ssh root@10.0.0.100
提示,常见的LAN和WAN是什么?
WAN接口,也就是广域网(WAN,Wide Area Network)的缩写,也称之为远程网(long haul network )。
而LAN接口,也就是局域网(Local Area Network,LAN)的缩写,它是指在某一区域内由多台计算机互联成的计算机组。
3.修改网卡配置文件
1.删除网卡配置文件中关于ipv4、ipv6的行
[root@muban ~]# sed -i '/ipv[46]/Id' /etc/sysconfig/network-scripts/ifcfg-eth0
2.再删除如下四行
proxy_method
browser_only
defroute
uuid
sed -r -i '/(proxy_method|browser_only|uuid|defroute)/Id' /etc/sysconfig/network-scripts/ifcfg-eth0
3.上述俩语句,你也可以一行搞定
确保最终的配置如下,和我一样即可
[root@muban network-scripts]# sed -ri '/(proxy_method|browser_only|uuid|defroute)/Id' /etc/sysconfig/network-scripts/ifcfg-eth0
[root@muban network-scripts]#
[root@muban network-scripts]# cat ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.100
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5
4.如果不这么做,你后续克隆虚拟机,会导致无法上网,必须要删除网卡配置文件的uuid
还得编辑eth1内网网卡配置文件
[root@muban network-scripts]# sed -r -e 's#eth0#eth1#g' -e 's#10.0.0.100#172.16.1.100#g' -e 's#10.0.0.254#172.16.1.254#g' ifcfg-eth0 >ifcfg-eth1
[root@muban network-scripts]# cat ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.100
PREFIX=24
GATEWAY=172.16.1.254
DNS1=223.5.5.5
如果sed用的不熟,实在不行,vim去手动改也一样
最后重启网络服务,确保ip正常
[root@muban network-scripts]# systemctl restart network
[root@muban network-scripts]# ip addr show |grep -E 'eth0|eth1'
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
inet 172.16.1.100/24 brd 172.16.1.255 scope global noprefixroute eth1
最后可以用你的windows、验证这两块网卡
4.系统初始化优化
关闭防火墙、selinux
[root@muban ~]# systemctl stop firewalld NetworkManager
[root@muban ~]# systemctl disable firewalld NetworkManager
[root@muban ~]# sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
[root@muban ~]# grep -i 'selinux=' /etc/selinux/config
# SELINUX= can take one of these three values:
SELINUX=disabled
[root@muban ~]# setenforce 0
[root@muban ~]# getenforce
Permissive
[root@muban ~]# iptables -F
[root@muban ~]# iptables -X
[root@muban ~]# iptables -Z
最后检查
[root@muban ~]# iptables -L
[root@muban ~]# systemctl is-enabled firewalld NetworkManager
disabled
disabled
加速ssh连接
修改如下2个参数
[root@muban yum.repos.d]# grep -Ei '^(usedns|gssapiauth)' /etc/ssh/sshd_config
GSSAPIAuthentication no
UseDNS no
[root@muban yum.repos.d]# systemctl restart sshd.service
优化PS1变量
export PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\\$"
写入环境变量,永久生效
echo 'export PS1="[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\] \[\e[31;1m\]\w\[\e[0m\]]\\$"' >> /etc/profile
yum源优化
1.备份旧的默认repo
[root@muban ~]# cd /etc/yum.repos.d/
[root@muban yum.repos.d]# mkdir bakrepo
[root@muban yum.repos.d]# mv *.repo bakrepo/
2.下载新的repo
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
安装基础软件
yum install -y tree wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip telnet ntpdate lsof vim
关闭邮件告警
[root@muban ~]# echo 'unset mailcheck' >> /etc/profile
[root@muban ~]# source /etc/profile
配置hosts解析
cat > /etc/hosts <<EOF
# 外网地址 内网地址 主机名
10.0.0.61 172.16.1.61 master-61
10.0.0.5 172.16.1.5 slb-5
10.0.0.6 172.16.1.6 slb-6
10.0.0.7 172.16.1.7 web-7
10.0.0.8 172.16.1.8 web-8
10.0.0.9 172.16.1.9 web-9
10.0.0.31 172.16.1.31 nfs-31
10.0.0.41 172.16.1.41 rsync-41
10.0.0.51 172.16.1.51 db-51
EOF
时间同步
写入定时任务
crontab -e
* * * * * /usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1
查看定时任务
crontab -l
或
cat /var/spool/cron/root
关闭swap
[root@muban ~]# swapoff -a
[root@muban ~]# free -m
total used free shared buff/cache available
Mem: 1982 97 1409 9 475 1699
Swap: 0 0 0
[root@muban ~]#
[root@muban ~]# vim /etc/fstab
#将最后swap那一行删去
[root@muban ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Apr 18 01:03:08 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=16dbd4b1-60b3-4770-b20a-4d0b59b39e4a /boot xfs defaults 0 0
[root@muban ~]#
5.修改ip的脚本
至此,上述所有的初始化操作,已经针对模板机修改好了,然后克隆该机器,也自动有了所有的配置
未读需要修改的就是ip地址、主机名,每一个机器都不一样,因此你可设置一个简单脚本。
network_init.sh
#!/bin/bash
read -p "请输入IP主机位:" my_ip
read -p "请输入主机名:" host_name
echo '正在修改网卡配置文件eth0'
sed -i "/IPADDR/s#100#${my_ip}#g" /etc/sysconfig/network-scripts/ifcfg-eth0
echo '正在修改网卡配置文件eth1'
sed -i "/IPADDR/s#100#${my_ip}#g" /etc/sysconfig/network-scripts/ifcfg-eth1
echo '网卡配置文件修改完毕'
echo '正在修改主机名'
hostnamectl set-hostname ${host_name}
echo '重启network服务中'
systemctl restart network
6.拍摄快照
7.克隆新的虚拟机
新虚拟机,克隆完毕后
- 检查一下初始化的配置是否正确
- ip、主机名是否正确
- 是否可以ssh
- 是否可以上网
- 全部做好首次的快照
循环操作,完成9台机器的创建
_ip
read -p “请输入主机名:” host_name
echo ‘正在修改网卡配置文件eth0’
sed -i “/IPADDR/s#100#KaTeX parse error: Expected 'EOF', got '#' at position 8: {my_ip}#̲g" /etc/syscon…{my_ip}#g” /etc/sysconfig/network-scripts/ifcfg-eth1
echo ‘网卡配置文件修改完毕’
echo ‘正在修改主机名’
hostnamectl set-hostname ${host_name}
echo ‘重启network服务中’
systemctl restart network
## 6.拍摄快照
## 7.克隆新的虚拟机
新虚拟机,克隆完毕后
- 检查一下初始化的配置是否正确
- ip、主机名是否正确
- 是否可以ssh
- 是否可以上网
- 全部做好首次的快照
循环操作,完成9台机器的创建