引言

事先准备一个静态IP模板虚拟机, 一是能快速克隆一个拥有干净环境的虚拟机, 新的虚拟机通过简单的配置, 就能使用; 二是静态IP易于管理, 一般采用连续的IP地址, 如192.168.1.107、192.168.1.108, 第一个可以单独来学redis、第二个又可以单独安装mysql。

下载centos

这里选择安装centos7.8-minimal版本, 阿里云centos7.8地址, 选择iso文件下载即可。

创建静态IP模板机

虚拟机配置

在VMware里新建虚拟机, 选择我们之前下载的镜像即可, 指定虚拟机名称。

镜像选择及虚拟机命名

这里留意下, 网络类型的选择, 一般选择桥接/NAT, 这个选择会影响后续模板机静态IP的配置, 这里选择NAT。之后一路下一步即可, 有需要进行内存、处理器、硬盘配置的同学可以自行配置。

网络类型选择

新建虚拟机向导完成后, 默认会自动启动虚拟机, 接下来完成centos的初始配置即可

centos初始配置

centos-minimal版本的初始化过程很简单, 我们配置下语言、设置下root用户密码即可, 其他的就一直下一步, 等待一会叫我们重启, 进入输入用户名、密码界面, 就算成功!

centos-minimal版本初始化

获取网络配置基础信息

这个时候, 我们的网络实际上还不可用, 尝试做以下动作, 可以看到Network is unreachable, 我们虚拟机ip也是错误的。

1
2
# ping阿里DNS地址
ping 223.5.5.5

网络错误的现象

我们下面进行配置网络.

虚拟机网络类型为NAT

这时候, 回忆之前新建虚拟机时, 我们选择的网络类型是NAT, 而配置模板机IP时, NAT模式需要保证虚拟机网段与VMnet8一致, 照下图配置即可。

模板机网络配置

那么经过这一步后, 我们得到的信息有如下内容, 这些都是在之后配置虚拟机网络文件时需要的。

1
2
3
4
5
6
7
8
# 1. 子网地址 192.168.163.0
之后我们配置虚拟机IP时, 就能相对随意的配置为 192.168.163.x 了
# 2. 网关地址
192.168.163.2 , 这个地址在之后配置虚拟机网络文件时需要
# 3. 子网掩码
255.255.255.0 , 它同样在之后配置虚拟机网络文件时需要
# 4. 当前虚拟机硬件地址, 通过 ip addr 命令获得(上图中已经获得)
当前虚拟机硬件地址为 00:0c:29:17:75:9b

虚拟机网络类型为桥接模式

网络类型为桥接模式时, 我们获得上面4个内容的方式有所不同, 这时候我们需要保证虚拟机的网段与物理机的网段一致, 而网关地址, 需和物理主机网关相同

我们打开宿主机的命令行, 使用ipconfig查看信息。

宿主机IP展示

我们依旧能获得4个配置信息, 主要是子网地址网关地址的差距较大。

1
2
3
4
5
6
7
8
9
# 1. 子网地址 192.168.1.0
之后我们配置虚拟机IP时, 就能相对随意的配置为 192.168.1.x 了
只不过, 这种情况下虚拟机配置IP地址时, 还是尽量`和宿主机IP别配重叠了`!
# 2. 网关地址
192.168.1.1
# 3. 子网掩码
255.255.255.0
# 4. 当前虚拟机硬件地址, 通过 ip addr 命令获得(上图中已经获得)
当前虚拟机硬件地址为 00:0c:29:17:75:9b

配置模板机网络

1
2
3
cd /etc/sysconfig/network-scripts
# 编辑网络配置文件
vi ifcfg-ens33

如下是需要修改的内容

需要修改的配置

下面还有需要新增的配置, 修改并保存。

1
2
3
4
5
IPADDR=192.168.163.10  # 这个参考上面不同网络类型的说明, 我这里是 NAT
NETMASK=255.255.255.0 # 同上
GATEWAY=192.168.163.2 # 同上
HWADDR=00:0c:29:17:75:9b # 通过 ip addr 命令获得, ens33设备下的物理地址
DNS1=223.5.5.5 # 这里能配置多个DNS服务器地址, 这里我只配了阿里的DNS服务器

重启网络服务

1
service network restart

重启网络成功

从这时候开始, 我们 ping 百度 也能ping通, yum工具也能正常下载工具包了。

模板机ssh环境配置

现在使用xshell等ssh客户端工具, 还无法连接上我们的虚拟机。

我们下载ssh-server包。

1
yum install -y openssh-server

配置ssh

1
2
cd /etc/ssh/
vim sshd_config

暂时打开允许root用户登录即可。

ssh允许root用户登录

1
2
# 为了免去每次开启 CentOS 时,都要手动开启  sshd 服务,可以将 sshd 服务添加至自启动列表中,输入
systemctl enable sshd

修改完后重启服务, 重启sshd服务:

1
service sshd restart

之后得开放22端口, 或者选择性禁用防火墙。

1
2
3
4
5
firewall-cmd --zone=public --add-port=22/tcp --permanent  # 防火墙开启22端口
firewall-cmd --reload # 必须重启防火墙,否则不生效

# 简单点直接禁用防火墙
systemctl disable firewalld.service

确保22端口已经被占用

确保22端口已经占用

然后就能远程ssh连接了。

ssh登录成功

danger 如果出现ssh连接不上虚拟机的问题, 参考下面内容

1
2
# ping虚拟机出现超时问题
ping 192.168.163.10

宿主机ping不通虚拟机

这是因为情况下虚拟机网络模式为NAT模式的情况下, 虚拟机通过VMnet8与宿主机通信, 但是它们并不处于一个网段下。(网桥模式应该就没这个ping不通的问题)

进行如下配置即可。

修改宿主机VMnet8的配置

配置后在宿主机上就能ping通虚拟机了, ssh连接也没问题了。

primary 在这之后的话, 就能给模板机安装Java、net-tools等环境了, 这个就看个人如何使用了

拷贝模板机

现在如果我们将这个纯净的模板机做一个克隆, 将克隆后的虚拟机专门用作redis或其他用途, 我们进行如下操作。

克隆模板机

启动模板机后, 我们需要做如下操作来配置新的虚拟机的网络

1
2
# 查看新虚拟机的物理地址
ip addr

新虚拟机的物理地址

1
2
3
cd /etc/sysconfig/network-scripts
# 编辑网络配置文件
vim ifcfg-ens33

修改新虚拟机的网络配置

重启网络即可

1
service network restart

简单测试下, 物理机ping得通新的虚拟机(192.168.163.11)即可咯~

自定义环境配置

这个属于自定义环境了, 因为自己用这两个环境较多, 直接给模板机配上。

yum源修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 如果没有wget先安装
yum install -y wget

# 备份本地yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back

# 获取阿里yum源配置文件(注意版本和当前centos版本对应)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 更新yum缓存
yum makecache

# 查看当前yum源
yum repolist

jdk环境

找个jdk8的linux包上传并配置环境变量就行

1
2
3
4
# java
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
1
2
3
4
5
# minimal-centos缺少glibc库
yum install -y glibc.i686

source /etc/profile
java -version

docker环境

安装docker

1
2
3
4
5
6
7
8
9
10
11
12
yum -y install docker-ce

# 如果出现 "错误:没有匹配的软件包可以列出"
# 安装yum管理工具
yum install -y yum-utils
# yum添加软件源
yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
# 刷新缓存
yum makecache
# 再次安装即可
1
2
3
4
5
6
# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker

docker version

开启IPv4转发

1
2
3
4
5
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf

# 重启network和docker服务
systemctl restart network
systemctl restart docker

配置docker镜像地址

进阿里云容器镜像服务 > 镜像加速器, 选择 CentOS 操作文档, 复制脚本执行完即可。

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://这个地址每个账号不同的.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装docker-compose

下载地址, 下载docker-compose-linux-x86_64放到 /usr/local/sbin/, 这样就不用再配一遍环境变量配置文件了。

1
2
3
4
# 设置文件权限
chmod a+x docker-compose-Linux-x86_64
# 移动到/usr/bin目录下,并重命名为docker-compose
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose

测试安装成功

1
2
[root@localhost local]# docker-compose version
Docker Compose version v2.9.0