1、环境:
操作系统 windows 10 x64
Vagrant vagrant_2.3.4_windows_amd64.msi
VirtualBox VirtualBox-7.0.4-154605-Win.exe
2、Vagrant 安装教程
2.1 Vagrant 下载
进入下载页面下载对应版本:https://www.vagrantup.com/downloads,外网下载可能比较慢,下载后会得到一个安装程序 vagrant_2.3.4_windows_amd64.msi。
2.2 Vagrant 软件安装
双击运行 vagrant_2.3.4_windows_amd64.msi 进入安装环节。
选择安装位置,安装路径最好不带中文路径。
安装过程比较漫长,安心等待即刻。
选择 No 不重启
安装结束,下面进行环境变量配置,指定 Vagrant 的数据文件存放路径(box、data、gems等)。
2.3 Vagrant 环境变量配置
Vagrant 在执行命令的时候会尝试访问 %userprofile%\.vagrant.d,这个文件夹中会存放 Vagrant 相关的命令,
如果 .vagrant.d 文件夹的存放路径包含中文路径,那么 Vagrant 在使用过程中可能会出错,毕竟是国外的产品,安装路径最好不要包含中文路径。
这里将在环境变量中指定 .vagrant.d 的文件夹路径,避免默认路径中存在中文。
在环境变量中指定 VAGRANT_HOME 配置项,并关联 .vagrant.d 文件夹的位置,
本文配置的路径是:D:\DevSoft\Vagrant\.vagrant.d\。
3、VirtualBox 安装教程
3.1 VirtualBox 下载
官方下载地址:https://www.virtualbox.org/wiki/Downloads。
3.2 VirtualBox 安装
双击运行 VirtualBox-7.0.4-154605-Win.exe 进入安装界面:
选择 VirtualBox Application 并修改安装位置,安装路径最好不要携带中文路径。
3.3 配置虚拟机默认安装地址
打开全局设置,配置虚拟机安装地址,默认是存放到 C 盘,这里我改到了E:\VirtualBoxVMs
其他配置按照需求修改即可,VirtualBox 只是一个虚拟机的供应者,后面都是使用 Vagrant 进行操作,很少使用 VirtualBox。
3.4 环境变量配置
4、安装一个 centos 7 系统
4.1 安装 VirtualBox 体系下的 Vagrant Box
Vagrant 管理工具中的系统都是 Box 的概念,类似直接虚拟机管理软件直接使用 iso 镜像文件。
首先到 Vagrant 官网中下载一个 VirtualBox 体系下的 centos/7.box 文件,
官网地址:https://app.vagrantup.com/boxes/search
下载完后会得到一个 box 文件 CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box,
把它修改个短点的名字方便使用,然后保存备用,这里将它改名为 centos7,存放到 E:\VagrantBox\ 文件夹下,此时它的文件路径为:E:\VagrantBox\centos7.box。
打开命令行窗口(cmd),然后将它添加到 Vagrant 管理的 Box 列表中:
vagrant box add centos7 E:\VagrantBox\centos7.box
centos7 是为 box 取的名字,供后续创建虚拟机。
查看是否添加成功
vagrant box list
4.2 创建一个虚拟机
这里我先创建一个存放 Vagrantfile 的文件夹:E:\Vagrantfile\centos7\,然后打开 cmd 命令行窗口进入这个目录,执行后续命令:
创建虚拟机
vagrant init centos7
centos7 是前面为 box 取的名字,命令执行完后会在文件夹中生成一个 Vagrantfile 文件,可以在里面配置虚拟机相关信息,里面得注释虽然是英文的,但是十分详细,都是基于 Ruby 语法书写的。这里不作展开,只做基本配置,去掉注释文件后的 Vagrantfile:
Vagrant.configure("2") do |config|
config.vm.box = "centos7" # box 名称
config.vm.hostname = "centos7" # 虚拟机名称
config.vm.box_check_update = false # 盒子不检查更新
config.vm.network "private_network", ip: "192.168.33.10" # 配置成私有网络,类似主机模式,如果改为public_network就类似于桥接模式,桥接模式网段必须与主机在同一个网段
# 虚拟机供应者参数配置,相当于在 virtualbox 中配置
config.vm.provider "virtualbox" do |vb|
vb.name = "centos7" # 虚拟机名称
vb.gui = false # 启动机器时显示 VirtualBox GUI
vb.memory = "2048" # 虚拟机存储大小,mb
vb.cpus = 2 # cpu 大小
end
end
完成配置后,下面启动虚拟机contos7,启动过程中可以看到虚拟机的一些基本配置信息:
vagrant up
前面配置的私有IP地址,在宿主机上能够 ping 通,说明启动成功。
4.3 进入虚拟机
vagrant ssh
虚拟机的默认用户是 vagrant , root 用户的密码是 vagrant 。
进入后就可以像 centos7 一样使用命令行操作了,不过使用 cmd 不太方便,推荐使用 Xshell 配合 Xftp 进行操作,都有免费的教育版本。
4.4 使用root登陆
由于vagrant默认是限定了不允许root用户登陆,而且只能vagrant up登陆,很多操作都有权限限制,例如vi /etc/ssh/sshd_config。这就导致了对这个虚拟机没有100%掌控力的感觉,这就不能忍了。所以接下来我要获取root权限,自己想怎么登陆就怎么登陆。
步骤如下:
1、使用vagrant ssh 登录
2、使用 sudo chmod 777 /etc/ssh/sshd_config ,给这个文件添加上可修改的权限
3、使用 vi /etc/ssh/sshd_config 修改这个文件以下几个配置
port 22 -- 开启登陆端口
PermitRootLogin yes -- 允许root登陆
passwordAuthentication yes -- 允许密码登陆
4、修改完后保存重启sshd让配置生效:service sshd restart
4.4 使用Vagrantfile批量创建虚拟机
- 在一个文件新建一个Vagrantfile文件,把下面内容复制到Vagrantfile内
- 这里是两节点,如果需要多个节点,在boxes配置数组里面多添加几个就好了
boxes = [
{
:name => "centos41",
:eth1 => "192.168.33.41" ,
:mem => "1024" ,
:cpu => "1"
},
{
:name => "centos42",
:eth1 => "192.168.33.42" ,
:mem => "1024" ,
:cpu => "1"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "centos7"
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm" , :id , "--memory" , opts[:mem]]
v.customize ["modifyvm" , :id , "--cpus" , opts[:cpu]]
v.customize ["modifyvm" , :id , "--name" , opts[:name]]
end
config.vm.network:private_network,ip:opts[:eth1]
end
end
end
- 进入放置Vagrantfile的,使用vagrant up命令启动
- 启动成功后在virtualBox可以看到centos41和centos42两台虚拟机。
4.5 注意事项
每次启动虚拟机需要使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant up 命令启动虚拟机。
关机同理,使用命令行(cmd)进入 Vagrantfile 文件所在的目录,然后再使用 vagrant halt 命令关闭虚拟机。
本文中 centos7 虚拟机的 Vagrantfile 的存放路径是E:\Vagrantfile\centos7,所以我每次都会用 cmd 进入 E:\Vagrantfile\centos7 这个目录,然后使用 vagrant up 开机,使用 vagrant halt 关机。
5、安装docker
参考官网的教程
删除之前的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装前置工具
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 官方源,网速太慢yum断连,不建议
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里源,国内速度快 (本文设置这个源,安装成功)
$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//安装容器
sudo yum install docker-ce docker-ce-cli containerd.io
//启动docker
sudo systemctl start docker
//查看docker版本
sudo docker version
- 按上面的步骤安装完毕后,如果pull image的时候如果很慢,可以使用中科大的镜像源
vi /etc/docker/daemon.json
{
"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
- 然后重启docker : service docker restart
6、参考链接
Vagrant 官网地址:https://www.vagrantup.com/
Vagrant Box 地址:https://app.vagrantup.com/boxes/search
VirtualBox 官网地址:https://www.virtualbox.org/
VirtualBox+vagrant搭建root权限,免密登陆的多节点centos虚拟机:https://www.jianshu.com/p/733f72b652c1
Vagrant 与 VirtualBox 的保姆级安装教程:https://blog.csdn.net/qq_44713454/article/details/119943743