Vagrant 极简教程

栏目: 服务器 · 发布时间: 6年前

内容简介:Vagrant 可以理解为是一个管理虚拟机的工具,我们常用它快速创建虚拟镜像来进行开发或者测试等等。官方文档为因为 Vagrant 只是个单纯管理虚拟机的工具,所以是需要先安装虚拟机的这个 demo 将教你通过 Vagrantfile 快速创建 3 个 ubuntu 的虚拟镜像。首先需要你先添加 Ubuntu 的 box,具体有哪些 box ,可以到

Vagrant 可以理解为是一个管理虚拟机的工具,我们常用它快速创建虚拟镜像来进行开发或者测试等等。官方文档为 https://www.vagrantup.com/docs/

安装

# macOS
brew cask install virtualbox
brew cask install vagrant

因为 Vagrant 只是个单纯管理虚拟机的工具,所以是需要先安装虚拟机的

快速入门

这个 demo 将教你通过 Vagrantfile 快速创建 3 个 ubuntu 的虚拟镜像。首先需要你先添加 Ubuntu 的 box,具体有哪些 box ,可以到 https://app.vagrantup.com/boxes/search 这里来查找

vagrant box add generic/ubuntu1804

接下来就是一个漫长的等待过程(如果你没开代理的话),这种时候你可以复制它的下载链接,然后通过迅雷等下载 工具 来进行下载,下载完成后再来添加 box

vagrant box add --name generic/ubuntu1804 /path/to/xxxxx

编辑 Vagrantfile

Vagrant.configure(2) do |config|
    # 指定使用哪个 box
    config.vm.box = "generic/ubuntu1804"

    # 指定使用哪个虚拟机
    config.vm.provider "virtualbox" do |vb|
        # 给virtualbox虚拟机指定资源配置,其他配置项可以看https://www.vagrantup.com/docs/virtualbox/configuration.html
        # 记住,不同的虚拟机的配置是不太一样的,具体看官方文档
        # 这里指定了1024M内存
        vb.memory = "1024"
    end

    # 循环 2 次
    (1..2).each do |i|
        # 创建虚拟机,用 i 下标来标识每一台虚拟机,虚拟机名称为 node1,node2
        config.vm.define "node#{i}" do |node|
            # 配置hostname
            node.vm.hostname = "node#{i}"
            # 配置机网络
            node.vm.network "private_network", ip: "192.168.33.2#{i}"
            # 配置端口映射,guest是虚拟机,host是本机
            # 需要多个端口映射,就写多个,目录映射同理
            node.vm.network "forwarded_port", guest: 80, host: "908#{i}"
            node.vm.network "forwarded_port", guest: 90, host: "909#{i}"
            # 配置目录映射,第一个参数是本机目录(这里用是相对路径,你也可以写绝对路径),第二个参数是虚拟机目录
            # 第三个参数是 virtualbox 需要的,具体看https://www.virtualbox.org/manual/ch04.html#sharedfolders
            node.vm.synced_folder "app#{i}", "/vagrant", SharedFoldersEnableSymlinksCreate: false
        end
    end

    # 单独创建一个虚拟机
    config.vm.define "manage" do |manage|
        manage.vm.hostname = "manage"
        manage.vm.network "private_network", ip: "192.168.33.11"
        # 使用 shell provision 执行一段脚本,其他 provision 可以看官方文档 
        # https://www.vagrantup.com/docs/provisioning/
        manage.vm.provision "shell", path: "bootstrap-manage.sh"
    end
end

编辑 bootstrap-manage.sh

cat >> /etc/hosts <<EOL
192.168.33.11 manage
192.168.33.21 node1
192.168.33.22 node2
EOL

目录结构

- app1/
- app2/
- bootstrap-manage.sh
- Vagrantfile

接下里就是用 Vagrant 来启动虚拟机了,在 Vagrantfile 所在目录执行

vagrant up

在一个长时间的等待后,我们的3台虚拟机就创建完成了。然后我们可以ssh到虚拟机中,查看是否成功

# 因为前面我们定义一个名字叫 manage 的虚拟机,所以可以通过这种方式快速 ssh
# 当然你也可以通过 ssh vagrant@192.168.33.11,密码也是vagrant
vagrant ssh manage

使用完成后,我们可以通过 Vagrant 关闭虚拟机

vagrant halt

如果想删掉虚拟机的话,也一样可以通过 Vagrant 来处理

vagrant destroy

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Just My Type

Just My Type

Simon Garfield / Profile Books / 2010-10-21 / GBP 14.99

What's your type? Suddenly everyone's obsessed with fonts. Whether you're enraged by Ikea's Verdanagate, want to know what the Beach Boys have in common with easy Jet or why it's okay to like Comic Sa......一起来看看 《Just My Type》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具