美文网首页
Vagrant 构建虚拟机并完成互信操作

Vagrant 构建虚拟机并完成互信操作

作者: 超级呆 | 来源:发表于2021-06-26 18:26 被阅读0次

Vagrant的学习(macos系统)

学习地址:
Mac OS 使用 Vagrant 管理虚拟机VirtualBox
MAC-OS环境下Vagrant的安装及使用
vagrant-配置内容
vagrant-配置互信

什么是Vagrant

构建虚拟开发环境的工具,类似于Docker,但存在差异(目前还没搞清楚区别是什么- -)

Vagrant 能解决什么问题

统一完成虚拟开发环境的构建,以免出现版本迭代导致的一些ops的问题

如何搭建Vagrant的环境

Box下载地址: Vagrant-Box下载地址

  • Vagrant的安装
// 安装 virtualbox
brew install virtualbox
// 安装 vagrant
brew install vargant
// `重装`vagrant
brew reinstall vagrant
 // 安装 box 公开boxs例如:gubuntu/trusty64,或者从 Box下载地址中下载,通过本地的方式加载)
vagrant box add [box_name] 
  • vagrant的命令
// 查询添加的box类型
vagrant box list
// 初始化vagrantfile,即vagrant的配置文件
vagrant init [box_name]
// 启动box_name的vm 【这里踩坑了很久,大概1~2小时,启动失败】
vagrant up
// 连接VM
vagrant ssh
// 退出VM
VM环境下: exit
// 关闭VM
vagrant halt
// 重启VM
vagrant reload
  • 启动VM失败的问题

报错信息(打开Virtual Box的时候,启动VM报错内容): kernel driver is not installed
原因:这里是由于macos系统,对安全问题的保障,没有通过安全允许,导致启动失败;
解决:打开【Perfrence -> Security and Privilege 】完成解锁(左下角)【点击Allow或者点击Detail选中Oracle Americal允许】,最后重启电脑,就可以启动我们的VM了

  • 使用vagrantfile配置多个VM
> >      # VM1
> >      config.vm.define "node1" do |vb|
> >      config.vm.provider "virtualbox" do |v|
> >      v.memory = 1024
> >      v.cpus = 1
> >      end
> >      vb.vm.host_name = "node1"
> >      vb.vm.network :public_network, ip: "172.16.1.101"
> >      vb.vm.box = "ubuntu/trusty64"
> >      end
> >     
> >      # VM2
> >      config.vm.define "node2" do |vb|
> >      config.vm.provider "virtualbox" do |v|
> >      v.memory = 1024
> >      v.cpus = 1
> >      end
> >      vb.vm.host_name = "node2"
> >      vb.vm.network :public_network, ip: "172.16.1.102"
> >      vb.vm.box = "ubuntu/trusty64"
> >      end
> >      
> >      # VM3
> >      config.vm.define "node3" do |vb|
> >      config.vm.provider "virtualbox" do |v|
> >      v.memory = 1024
> >      v.cpus = 1
> >      end
> >      vb.vm.host_name = "node3"
> >      vb.vm.network :public_network, ip: "172.16.1.103"
> >      vb.vm.box = "ubuntu/trusty64"
> >      end
> >     end
  • 配置SSH互信

什么是SSH互信?SSH互信,说白了,就是在目标机器上,预先设置好经过认证的key文件,当需要访问目标机器时,目标机器通过key文件,对访问者进行自动认证,从而实现互信。

  • 配置互信原理
1. 首先,在要配置互信的机器上,生成各自的经过认证的key文件;
2. 其次,将所有的key文件汇总到一个总的认证文件中;
3. 将这个包含了所有互信机器认证key的认证文件,分发到各个机器中去;
4. 验证互信.
  • 具体操作
1\. 创建SSH互信的认证文件 【1\. 创建文件夹 2\. 写入权限 3\. 创建认证文件 rsa 4\. 创建认证文件 dsa】
> >         // node1
> >         [rac@ocm1 ~]$ mkdir .ssh                
> >         [rac@ocm1 ~]$ chmod 755 .ssh            
> >         [rac@ocm1 ~]$ /usr/bin/ssh-keygen -t rsa
> >         [rac@ocm1 ~]$ /usr/bin/ssh-keygen -t dsa
> >         // node2
> >         [rac@ocm2 ~]$ mkdir .ssh                
> >         [rac@ocm2 ~]$ chmod 755 .ssh            
> >         [rac@ocm2 ~]$ /usr/bin/ssh-keygen -t rsa
> >         [rac@ocm2 ~]$ /usr/bin/ssh-keygen -t dsa
> >         2\. 将认证文件内容汇总到一个总的认证文件
> >         // node1
> >         [rac@ocm1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys                                          
> >         [rac@ocm1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
> >         // node2
> >         [rac@ocm1 ~]$ ssh rac@ocm2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
> >         [rac@ocm1 ~]$ ssh rac@ocm2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
> >         3\. 拷贝到需要共享的节点
> >         // node2 访问 node1
> >         [rac@ocm2 ~]$ rcp ~/.ssh/authorized_keys ocm2:~/.ssh/authorized_keys
> >         4\. Verify the result
> >         [rac@ocm2 ~]$ssh rac@ocm1

如何使用Vagrant

  • 配置vagrantfile文件,用于配制vm的信息
  • 在vagrantfile的文件夹下,用vagrant up命令启动VM
  • 使用vagrant ssh 【node_name】连接远程VM

相关文章

网友评论

      本文标题:Vagrant 构建虚拟机并完成互信操作

      本文链接:https://www.haomeiwen.com/subject/wjvzyltx.html