使用vagrant快速搭建linux实验环境

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用vagrant快速搭建linux实验环境相关的知识,希望对你有一定的参考价值。

简介

本文主要介绍如何使用vagrant配合virtualbox快速搭建实验环境。
virtualbox是一个开源跨平台虚拟机管理软件,功能类似收费的vmware
vagrant是一个开源的虚拟机配置编排软件,可以在命令行快速启动管理虚拟机。

相关资源的百度云下载链接
链接:https://pan.baidu.com/s/1nt_b96SEOIIWl2gIrabPpg 密码:6c3d

安装

1.安装virtualbox

官方下载virtualbox对应平台的软件包安装

2.安装vagrant

官方下载vagrant对应平台的软件包安装,由于官方网站在国外,可能下载比较慢。

3.设置virtualbox虚拟机存方目录

# 默认情况下 virtualbox 启动虚拟机会存放在用户的家目录里# windows 下C盘可能过小,需要设置特定目录存储虚拟机VBoxManage setproperty machinefolder D:virtualbox
VBoxManage list systemproperties | grep machine

搭建实验环境

1.下载导入相关box

# 由于需要从国外拉取box,可能会很慢。推荐使用我存储在百度云的box# 导入boxvagrant box add centos-7.4-base centos-7.4-base.box
vagrant box list

2.启动单机

mkdir single && cd single
cat >Vagrantfile<<EOF# -*- mode: ruby -*-# vi: set ft=ruby :ENV["LC_ALL"] = "en_US.UTF-8"Vagrant.configure("2") do |config|
    config.vm.box = "centos-7.4-base"
    config.vm.hostname = "will"
    config.ssh.insert_key = false

    # 指定CPU和内存大小
    config.vm.provider "virtualbox" do |v|
      v.memory = 1024
      v.cpus = 2
      v.customize ["modifyvm", :id, "--name", "will"]
    end    # 配置网络
    config.vm.network "private_network", ip: "11.11.11.111"
    # config.vm.network "private_network", ip: "192.168.22.10"

    # 配置启动后的操作
    config.vm.provision "shell", inline: <<-SHELL
      hostname
    SHELL
end
EOF# 启动vagrant up

3.启动多主机

mkdir double && cd doublecat >Vagrantfile<<EOF# -*- mode: ruby -*-# vi: set ft=ruby :ENV["LC_ALL"] = "en_US.UTF-8"Vagrant.configure("2") do |config|
    config.vm.define "web" do |web|
        web.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--name", "web", "--memory", "512"]
        end
        web.vm.box = "centos-6.9"
        web.vm.hostname = "web"
        web.vm.network "private_network", ip: "11.11.11.11"
    end
    
    config.vm.define "db" do |db|
        db.vm.provider "virtualbox" do |v|
            v.customize ["modifyvm", :id, "--name", "db", "--memory", "512"]
        end
        db.vm.box = "centos-6.9"
        db.vm.hostname = "db"
        db.vm.network "private_network", ip: "11.11.11.22"
    end
end
EOF# 启动vagrant up

3.启动集群

mkdir cluster && cd cluster
cat >Vagrantfile<<EOF# -*- mode: ruby -*-# vi: set ft=ruby :ENV["LC_ALL"] = "en_US.UTF-8"Vagrant.configure("2") do |config|
    (1..6).each do |i|
      config.vm.define "lab#{i}" do |node|
        node.vm.box = "centos-7.4-docker-17"
        node.ssh.insert_key = false
        node.vm.hostname = "lab#{i}"
        node.vm.network "private_network", ip: "11.11.11.11#{i}"
        node.vm.network "private_network", ip: "11.11.12.11#{i}"
        node.vm.provision "shell",          inline: "echo hello from node #{i}"
        node.vm.provider "virtualbox" do |v|
          v.cpus = 4
          v.customize ["modifyvm", :id, "--name", "lab#{i}", "--memory", "2048"]
        end
      end
    end
end
EOF# 启动vagrant up

4.连接虚拟机

# 一般情况下虚拟机ssh连接用户名为 vagrant# 一般情况下都不支持 密码登录, 可以登录之后自行配置支持密码登录# 连接的sshkey存储在用户家目录下 .vagrant.d 目录下# C:Userswill.vagrant.dinsecure_private_key

常用命令

以下命令后面都可以接虚拟机名,只对指定虚拟机作操作

  • 启动虚拟机

    • vagrant up

  • 暂停虚拟机

    • vagrant suspend

  • 关闭虚拟机

    • vagrant halt

  • 删除虚拟机

    • vagrant destroy

  • 存储快照

    • vagrant snapshot save lab1 init

  • 恢复快照

    • vagrant snapshot restore lab1 init

以上是关于使用vagrant快速搭建linux实验环境的主要内容,如果未能解决你的问题,请参考以下文章

vagrant+docker:开发环境快速搭建

Vagrant搭建虚拟化开发环境初识

使用 VirtualBox + Vagrant + 宝塔 Linux 面板搭建本地虚拟开发环境

Vagrant 快速生成Oracle 21c 数据库实验环境

vagrant快速搭建LNMP环境并且打包带走留着以后用

使用 Vagrant 打造跨平台开发环境