Vagrant+VirtualBox创建虚拟机

一 Vagrant 介绍

Vagrant 是一个软件,可以自动化虚拟机的安装和配置流程,用来管理虚拟机,如 VirtualBox、VMware、AWS 等目前市面上个人 PC 的主流操作系统不是Windows 就是 MacOS。对于这些用户,如果需要用 Linux 环境进行开发或学习,使用虚拟机无疑是最方便的选择。主要好处是可以提供一个可配置、可移植和复用的软件环境,可以使用 shell、chef、puppet 等工具部署。所以 vagrant 不能单独使用,如果你用它来管理自己的开发环境的话,必须在自己的电脑里安装了虚拟机软件,如 virtualbox。

更进一步,Vagrant 提供一个命令行工具 vagrant,通过这个命令行工具可以直接启动一个虚拟机,当然你需要提前定义一个 Vagrantfile 文件,这有点类似Dockerfile 之于 docker了。可以通过编写一个 Vagrantfile 来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,比如自动执行一个 shell script 来安装一些必备的开发工具,如Mysql。这意味着,当你需要在多台机器间同步开发进度时,只需要同步Vagrantfile,就可以保证各台机器拥有一致的开发环境。另外,即便对于计算机小白用户,Vagrant也是一个利器。以前我们为了学习一门语言,必须先手动安装这门语言的编译环境。有了 Vagrant后,我们可以下载别人写好的 Vagrantfile,然后运行 vagrant up,vagrant 就会自动下载虚拟机镜像,自动加载镜像并配置虚拟机,然后交给我们一个即开即用的学习环境

二 安装使用

下载介质

下载并安装virtualbox
https://www.virtualbox.org/wiki/Downloads
下载并安装vagrant
https://www.vagrantup.com/downloads.html
下载box
访问[https://app.vagrantup.com/boxes/search)(https://app.vagrantup.com/boxes/search),点击Downloads;
在这里插入图片描述
点击版本,进入链接
在这里插入图片描述

地址栏后添加/providers/virtualbox.box得到下载地址https://app.vagrantup.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box
在这里插入图片描述

安装

步骤一 添加box

vagrant box add ubuntu xenial-server-cloudimg-amd64-vagrant.box

在这里插入图片描述

步骤二 初始化vagrant:

vagrant init ubuntu (ubuntu 为),生成Vagrantfile
在这里插入图片描述

步骤三 安装并启动虚拟机

vagrant up 安装并启动虚拟机,
注意:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

在这里插入图片描述

三 使用xshell链接主机(秘钥方式)

主机名:127.0.0.1
用户名:vagrant
秘钥:如图,路径下
密码:vagrant
在这里插入图片描述

四 使用xshell链接主机(用户密码方式)

sudo vi /etc/ssh/sshd_config

修改PubkeyAuthentication 和 PasswordAuthentication 为yes
在这里插入图片描述

五 批量启动多个虚拟机

  • 修改配置文件Vagrantfile,一下我添加了6个虚拟机
  • 1574330184725
# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  # Every Vagrant development environment requires a box. You can search for
  # boxes at https://vagrantcloud.com/search.
  
  config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"
  
  config.vm.define "centos1" do |vb|
	config.vm.provider "virtualbox" do |v|
      v.memory = 512
      v.cpus = 1
    end
  vb.vm.host_name = "centos1"
  vb.vm.box = "centos"
  vb.vm.network "forwarded_port",guest:22,host:2201
  vb.vm.network "private_network", ip: "10.5.192.11"
  end
  
  config.vm.define "centos2" do |vb|
	config.vm.provider "virtualbox" do |v|
      v.memory = 512
      v.cpus = 1
    end
  vb.vm.host_name = "centos2"
  vb.vm.box = "centos"
  vb.vm.network "forwarded_port",guest:22,host:2202
  vb.vm.network "private_network", ip: "10.5.192.12"
  end
  
  config.vm.define "centos3" do |vb|
	config.vm.provider "virtualbox" do |v|
      v.memory = 512
      v.cpus = 1
    end
  vb.vm.host_name = "centos3"
  vb.vm.box = "centos"
  vb.vm.network "forwarded_port",guest:22,host:2203
  vb.vm.network "private_network", ip: "10.5.192.13"
  end
  
  config.vm.define "ubuntu1" do |vb|
    config.vm.provider "virtualbox" do |v|
    v.memory = 512
    v.cpus = 1
   end
  vb.vm.host_name = "ubuntu1"
  vb.vm.box = "ubuntu"
  vb.vm.network "forwarded_port",guest:22,host:2204
   vb.vm.network "private_network", ip: "10.5.192.14"
  end
  
	config.vm.define "ubuntu2" do |vb|
	  config.vm.provider "virtualbox" do |v|
	  v.memory = 512
	  v.cpus = 1
	end
  vb.vm.host_name = "ubuntu2"
  vb.vm.box = "ubuntu"
  vb.vm.network "forwarded_port",guest:22,host:2205
   vb.vm.network "private_network", ip: "10.5.192.15"
  end
  
    config.vm.define "ubuntu3" do |vb|
      config.vm.provider "virtualbox" do |v|
      v.memory = 512
      v.cpus = 1
    end
  vb.vm.host_name = "ubuntu3"
  vb.vm.box = "ubuntu"
  vb.vm.network "forwarded_port",guest:22,host:2206
   vb.vm.network "private_network", ip: "10.5.192.16"
  end
end

  • 重启虚拟机

    vagrant up
    

六 修改root用户

创建的虚拟机默认只用vagrant的用户名和密码root用户没用密码,给root用户设置密码的方法:

# 切换用户
sudo -i
# 修改密码
passwd
# 输入密码

在这里插入图片描述

七 配置指定ip登录

  • 添加config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"
  • 指定ip vb.vm.network "private_network", ip: "10.5.192.11"
# 这个必须添加在前面
  config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"

# 配置一台机器
  config.vm.define "centos1" do |vb|
	config.vm.provider "virtualbox" do |v|
      v.memory = 512
      v.cpus = 1
    end
  vb.vm.host_name = "centos1"
  vb.vm.box = "centos"
  vb.vm.network "forwarded_port",guest:22,host:2201
  vb.vm.network "private_network", ip: "10.5.192.11"
  end

八 常用的命令

# 启动虚拟机 
vagrant up 
# 启动指定的虚拟机
vagrant up centos1
# 重启虚拟机
vagrant reload
# 重启指定的虚拟机
vagrant reload centos1
# 关闭所有的虚拟机
vagrant halt

参考链接

https://www.jianshu.com/p/d9cc60a6ee6b
https://blog.csdn.net/gleaming_shen/article/details/80860493
https://www.jianshu.com/p/904aee7914a2

发布了36 篇原创文章 · 获赞 3 · 访问量 2929

猜你喜欢

转载自blog.csdn.net/weixin_39836585/article/details/103119122