Vagrant 入门使用指南

Vagrant是一个用于快速部署和管理虚拟机的工具,它与BaseBox结合使用,能便捷地创建和打包已配置的系统环境。用户可以通过Vagrant快速启动和停止虚拟机,进行SSH连接,并配置私有或公共网络。对于多服务器场景,Vagrant允许在配置文件中定义多个环境,如开发和生产环境,分别设置IP和同步目录。
摘要由CSDN通过智能技术生成

1. 认识Vagrant

        Vagrant是一个虚拟机使用软件,使用Base Box盒子的系统,运行虚拟环境,完成虚拟机的部署。

        Vagrant的优点有:

  1. 能够快速部署,比传统的虚拟机安装快(原始的虚拟机装载镜像,需要一步一步的部署)。
  2. 可以将已经部署完的虚拟系统(装完JRE、MySQL、应用等服务)打包,打包的文件可以再次导入。

        PS:可以将Vagrant看做一个管理VMware的工具,Base Box就是已经加工好的ISO镜像。

        Vagrant下载地址:https://www.vagrantup.com/

        Virtualbox下载地址:https://www.virtualbox.org/

        Vagrant box下载地址:https://app.vagrantup.com/

2. 单服务器

        按照下列操作,即可启动虚拟机。

        单服务器启动

# 查看box列表
vagrant box list

# 新增box 从网上下载chef/centos7.6
# vagrant box add chef/centos7.6

# 新增box 安装已下载好的box
vagrant box add centos7.6 Vagrant-CentOS-7.6-x86_64.VirtualBox-base.box

# 新建文件夹,初始化box系统
vagrant init centos7.6

# 启动box centos
# 可能启动失败:Warning: Authentication failure. Retrying...
# 若果失败,需要在VagrantFile里添加 username 和 password(下面有措施)
vagrant up

# 查看状态
vagrant status

# ssh连接box centos
vagrant ssh 

        VagrantFile配置文件

# 配置vagrantd的用户名和密码
config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'

# 配置私有网络
config.vm.network "private_network", ip: "192.168.33.10"

# 配置公有网络
config.vm.network "public_network"

# 配置共享目录 默认/vagrant
config.vm.synced_folder "../data", "/vagrant_data",
	create: true, owner: "root", group: "root"	

        常用命令 

# 停止box centos
vagrant halt

# 重启box centos
vagrant reload

# 暂停/恢复box centos
vagrant suspend
vagrant resume

# 销毁box centos
vagrant destroy

# 移除box
vagrant box remove centos7.6

# 打包 会自动生成package.box
vagrant package

# 装载box
vagrant box add centos7.6 package.box

3. 多服务器

        多服务器安装和单服务器一样的操作,但是需要更改配置文件完成操作,在初始化完系统后,需要对配置文件进行修改操作。

        多服务启动

# 新增box 安装已下载好的box
vagrant box add centos7.6 Vagrant-CentOS-7.6-x86_64.VirtualBox-base.box

# 新建文件夹,初始化box系统
vagrant init centos7.6

# 先不启动,修改配置文件,按照下面内容操作
# 修改完配置文件后启动即可
vagrant up

        在configure中间添加以下内容。

        修改配置文件

# 开发环境
  config.vm.define "development" do |development|
    development.vm.network "private_network", ip: "192.168.33.12"
    development.vm.hostname = "duomu-dev"
    development.vm.synced_folder "development", "/vagrant"
    development.ssh.username = 'vagrant'
    development.ssh.password = 'vagrant'
  end

# 生产环境
  config.vm.define "production" do |production|
    production.vm.network "private_network", ip: "192.168.33.13"
    production.vm.hostname = "duomu-prod"
    production.vm.synced_folder "produciton", "/vagrant"
    production.ssh.username = 'vagrant'
    production.ssh.password = 'vagrant'
  end
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.require_version ">= 1.6.0"

boxes = [
    {
        :name => "duomu1",
        :eth1 => "192.168.56.110",
        :mem => "1024",
        :cpu => "2"
    }
    {
        :name => "duomu2",
        :eth1 => "192.168.56.111",
        :mem => "8192",
        :cpu => "4"
    }
]

Vagrant.configure(2) do |config|
  config.vm.box = "centos7.6"
  # 第一次安装时请注释以下三行配置,配置ssh密码验证(sshd_config)后再打开
  config.ssh.username = 'duomu'
  config.ssh.password = ''
  config.ssh.insert_key = true
  # ssh config end
  
  config.vm.box_check_update = false
  if Vagrant.has_plugin?("vagrant-vbguest")
    config.vbguest.auto_update = false
  end
  # 禁用系统默认的共享目录
  config.vm.synced_folder '.', '/vagrant', disabled: true

  boxes.each do |opts|
    config.vm.define opts[:name] do |config|
      config.vm.hostname = opts[:name]
      config.vm.provider "virtualbox" do |v|
        v.customize ["modifyvm", :id, "--name", opts[:name]]
        v.customize ["modifyvm", :id, "--memory", opts[:mem]]
        v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
      end
      config.vm.network :private_network, ip: opts[:eth1]
    end
  end
  config.vm.synced_folder "./share", "/mnt/app-data", nfs_version: "3"
  config.bindfs.bind_folder "/mnt/app-data","/share",force_user:"vagrant",force_group:"vagrant",o:"nonempty"
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值