使用vagrant快速搭建虚拟机集群

本文指导如何使用Vagrant和VirtualBox创建CentOS 7虚拟机集群,包括下载安装、镜像加载、Vagrantfile编写、启动与配置,以及实现免密登录和IP映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载并安装vagrant

你好,首先我们需要下载和安装一套快速化搭建服务器集群的软件 vagrant
下载地址:https://www.vagrantup.com
在这里插入图片描述
安装直接下一步就可以。

2. 下载并安装virtualbox

vagrant 依赖于virtualbox 所以必须两个软件结合着使用
下载地址:https://www.virtualbox.org/wiki/Downloads

在这里插入图片描述
下载完成后也是直接下一步直到安装完成为止。

3. 下载镜像并加载到系统中

系统镜像:https://app.vagrantup.com/boxes/search
在这里插入图片描述
系统镜像里有很多其他公司或个人集成好的系统镜像,我们这里选择centos/7
这里大家可以使用我创建好的镜像:
链接:https://pan.baidu.com/s/19QP3Zf2d_JeRCdZGimMlYg
提取码:3grs

下载完成后,在本地加载这个镜像,需要给镜像起一个名字,通过命令
vagrant box add --name 镜像名称 centos7.box(下载的镜像) 就可以把镜像加载到vagrant容器里
查看是否加入成功:
vagrant box list
在这里插入图片描述
例如我们在本地目录下加载一个名为james的镜像使用的是centos7.box镜像 命令为:
vagrant box add --name james centos7.box

4. 编写vagrant 脚本

我们 新建一个Hadoop的文件目录
打开控制端程序,输入vagrant init 这个时候文件目录下会出现一个 Vagrantfile的文件。
在这里插入图片描述
我们打开这个文件进行编辑

Vagrant.configure("2") do |config| 
   (1..3).each do |i| 
       
      #定义节点变量 
      config.vm.define "node#{i}" do |node| 
      
      # box配置 
      node.vm.box = "centos7" 
 
      # 设置虚拟机的主机名 
      node.vm.hostname = "node#{i}" 
 
      # 设置虚拟机的IP 
      node.vm.network "private_network", ip: "192.168.60.#{10+i}" 
 
      # 设置主机与虚拟机的共享目录 
      #node.vm.synced_folder "/Users/meetmax", "/home/vagrant/code" 
      node.vm.synced_folder "e:/vagrant/data", "/share", create:true, owner: "root", group: "root"
      # VirtaulBox相关配置 
      node.vm.provider "virtualbox" do |v| 
 
          # 设置虚拟机的名称 
          v.name = "node#{i}" 
 
          # 设置虚拟机的内存大小 
          v.memory = 2048 
 
          # 设置虚拟机的CPU个数 
          v.cpus = 2 
      end 
  end 
end 
end 

然后点击保存这个时候虚拟机的脚本就完成了

4. vagrant 命令

1.启动命令:
vagrant up
2.启动某个虚拟机的命令:
vagrant up node1 …
3.进入系统内部命令:
vagrant ssh node1 …

其他命令请大家自行参考vagrant 官方文档。

5. IP映射和主机映射

对每台机器执行同样的操作
执行命令: vi /etc/hosts 修改主机和域名的映射

192.168.60.11 node1
192.168.60.12 node2
192.168.60.13 node3

互ping 看看主机是否能正长通信。
在这里插入图片描述

6.设置免密码登录

集群间的文件传输或者跨节点登录等,都需要进行密码的验证,每次输入密码很麻烦,可以设置为免密码登录。

6.1 三台机器生成公钥和私钥

执行命令

ssh-keygen -t rsa

执行该命令之后,按下三个回车即可(三台机器执行同样的操作)
在这里插入图片描述

6.2 拷贝公钥到其他机器(包含自身)

将公钥拷贝到其他机器,所以机器执行同样的操作

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

遇到的问题:Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
解决方案:

sudo vim /etc/ssh/sshd_config
增加如下修改   no 改为 yes
PasswordAuthentication yes


sudo systemctl restart sshd

或者:

sudo  ~/ssh/authorized_keys
添加你本机的公钥到该文件中

如果是root用户

/etc/ssh/sshd_config
# no gai为yes 
PermitRootLogin yes
sudo systemctl restart sshd

这样集群间就可以免密传文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值