简介
本文主要介绍如何使用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:\Users\will\.vagrant.d\insecure_private_key
常用命令
以下命令后面都可以接虚拟机名,只对指定虚拟机作操作
- 启动虚拟机
- vagrant up
- 暂停虚拟机
- vagrant suspend
- 关闭虚拟机
- vagrant halt
- 删除虚拟机
- vagrant destroy
- 存储快照
- vagrant snapshot save lab1 init
- 恢复快照
- vagrant snapshot restore lab1 init
原文地址:http://blog.51cto.com/13919645/2158258
时间: 2024-12-11 15:37:03