环境准备
Vagrant下载地址:https://github.com/hashicorp/vagrant/releases
Virtual Box下载地址:https://www.virtualbox.org/
在这里就不赘述Vagrant、Virtual Box的安装与使用。一路next傻瓜式安装。
各位感兴趣的话可以自行深入的了解、学习一下。
编写Vagrantfile
Vagrant.configure("2") do |config|
config.vm.define "test-centos7"
# 设置虚拟机的Box
config.vm.box = "centos7"
config.vm.box_url = "https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box"
# 设置虚拟机的主机名
config.vm.hostname="test-centos7"
# 设置虚拟机的IP
config.vm.network "private_network", ip: "192.168.56.200", netmask: "255.255.255.0"
# VirtaulBox相关配置
config.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "test-centos7"
# 设置虚拟机的内存大小
v.memory = 4096
# 设置虚拟机的CPU个数
v.cpus = 4
end
end
创建CentOS 7虚拟机
##### cmd命令界面 #####
cd F:\VirtualMachine\Vagrant # 进入到上一步编写好的 Vagrantfile 所在的目录
vagrant up # 使用 Vagrantfile 拉取CentOS 7虚拟机镜像并启动,第一次拉取镜像可能会比较耗时
简单的2行命令,就可以运行起来一个CentOS 7虚拟机,怎么样,Vagrant是不是很爽呢?
网络配置
这里要提一点的是,我们在Vagrantfile
中,配置了虚拟机的IP,是192.168.56.xxx
网段的,而这个网段,在Windows的CMD下,通过ipconfig /all
命令查看到的以太网适配器VirtualBox Host-Only Network
中的IPv4地址
要在同一个网段下,才可以直接连接。
而且,使用这种默认网段的虚拟机,是无法直接被你局域网下另一台主机访问到的。这里给出一个图示:
如果需要同一局域网下,所有的主机都可以访问该虚拟机的话,做以下配置即可:
-
在virtual box中,
右键该虚拟机 -> 设置 -> 网络 -> 连接方式选择“桥接网卡”
-
使用virtual box的带命令行界面的启动方式,启动虚拟机,
右键该虚拟机 -> 启动 -> 正常启动
-
配置虚拟机的ip地址、网关、子网掩码、DNS服务器
# 编辑网卡配置,一般默认网卡都是eth0 vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 在配置文件中,修改(或者追加)以下内容 BOOTPROTO="static" # 设置为静态ip IPADDR=192.168.0.200 # IPv4地址 GATEWAY=192.168.0.1 # 默认网关地址 NETMASK=255.255.255.0 # 子网掩码 DNS1=192.168.0.1 # DNS服务器1,如果不配置DNS,虚拟机无法连通外网环境。 DNS2=192.168.1.1 # DNS服务器2
-
:wq
保存并退出,重启网络服务:service network restart
此时,虚拟机应该就可以被局域网的其他机器访问到了。
说明:如果使用了桥接方式,有可能下面的vagrant ssh
命令不会奏效,可以在virtual box带命令行的界面中,先开启密码登录,开启方式后面有说明,开启密码登录后,可以使用xshell之类的工具直接连接了。
连接CentOS 7虚拟机
##### cmd命令界面 #####
# 等上面的 vagrant up 命令执行完之后,虚拟机就已经运行起来了,在virtual box中可以看到运行状态。
vagrant ssh # 通过这个命令,可以登录虚拟机,会提示要登录,默认的用户名、密码都是 vagrant
开启root用户密码登录
vagrant 新创建好的虚拟机,默认是只能通过 ssh 方式登录的,我们去开启一下密码登录,这样我们就可以通过xshell、secureCRT等工具用密码直连了。也可以用vagrant默认生成的private_key
密钥文件以ssh方式登录,看个人习惯吧,我更喜欢用密码登录一些。
##### cmd命令界面 #####
# 在cmd命令界面使用 vagrant ssh 命令登录后,就可以正常使用Linux下的shell命令了。
su root # 切换到root用户,默认密码也是 vagrant
passwd # 修改root用户的密码,自定义。
vi /etc/ssh/sshd_config # 配置 PasswordAuthentication yes ,以开启密码访问。
service sshd restart # 重启sshd服务,使配置生效
此时我们就可以使用xshell等工具直接用密码连接虚拟机了。
此时,虚拟机环境就算是搭建完成啦~
附:关闭防火墙
我们在操作虚拟机的时候,一般是自己学习使用的,毕竟生产上的服务器不能随便玩。
出于方便,我们可以关闭掉虚拟机的防火墙。
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
# 关闭swap
# 下面3条注释分别对应下面的三行命令。为了方便CV,就不单独加到每一行上了。
#临时关闭
#永久关闭
#验证,swap必须为0
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
free -g
收工了~