Vagrant intro-摘要

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013867301/article/details/83381058

地址置顶:
https://www.vagrantup.com/intro/getting-started

索引

文档: https://www.vagrantup.com/docs/

boxs search official: https://app.vagrantup.com/boxes/search
boxs search community: http://www.vagrantbox.es/

快速介绍

Vagrant是一个以相同工作流 构建和管理虚拟机环境 的工具
易上手的工作流和自动化,让Vagrant减少很多开发环境的安装时间,让"在我机器上没毛病"这句话成为历史

为何选择Vagrant

配置简单,重复生产,基于行业标准顶尖技术的端口化工作环境,统一的工作流
可以最大化的增加生产率和灵活性

  • 对于开发
    会隔离出一个依赖和配置齐全的一次性的完善的环境,同时还能保证使用喜欢的工具进行编辑.
  • 对于Operators
    (讲了一堆,还是说统一自动化的意思)
  • 对于设计师
    顺带还可以减少对开发的求助

竞品比较

Vagrant不是独有的用来管理虚拟机和开发环境的工具
为了防止偏见,我们用事实说话

  • 命令行工具
    人们需要自己编写,而Vagrant集成在内部,并且提供了多种方式(文件夹同步类型,provisioner)和快捷处理(ssh.http).
    在兼容上也更加省心
  • Docker
    Vagrant专注于,跨操作系统,提供统一的开发环境工作流,
    Docker是容器管理工具,能够让容器在containerization的系统上运行一致(macOS,Linux,Windows都可以实现containerization,BSD等不行),
    对于微服务,显然Docker更好,当然Vagrant使用Docker作为Provider也能实现.
    很多时候纯Docker的工作流也会比Vagrant统一化的更适合.
  • Terraform
    都是HashiCorp的项目,Terraform是一个构建基础架构的工具,他们会有重叠,比如都可以配置虚拟机的生命周期。
    但是V目的在于开发环境可用性,而T在于sapn multiple cloud provider的基础架构
    (既然不是类似的东西,比啥比。。。感觉是自家广告)

快速上手

安装就不贴了,比较方便,还自带配置环境变量.

# 帮助
$ vagrant <command> -h  
# 确认命令生效
$ vagrant
# 创建配置文件VagrantFile
$ vagrant init  
# 添加box
$ vagrant box add hashicorp/precise64
# 启动环境  
$ vagrant up
$ vagrant up --provider=aws
# ssh链接
$ vagrant ssh  
# 退出
logout
Ctrl+D
exit
# 暂停,保存客户机状态和内容,会实际占用较多磁盘
vagrant suspend
# 暂停,不保存客户机,保存内容,会占用较少磁盘
vagrant halt
# 断开虚拟机资源,不保存任何东西,不占用磁盘
$ vagrant destroy
# 删除box
$ vagrant box remove
# 重载  
vagrant reload
vagrant reload --provision  

配置文件 VagrantFile

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.box_version = "1.1.0"
  config.vm.box_url = "https://vagrantcloud.com/hashicorp/precise64"  
  config.vm.provision :shell, path: "bootstrap.sh"  #相对路径
  config.vm.network :forwarded_port, guest: 80, host: 4567
end

执行脚本 bootstrap.sh

apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
  rm -rf /var/www
  ln -fs /vagrant /var/www
fi

Vagrant虚拟的客户机的/vagrant文件目录 与 主机的VagrantFile所在的文件夹 共享 …

如果bootstrap.sh比较复杂,显然更好的方式是把所有安装好之后,打包一个Vagrant Box

在这个bootstrap.sh脚本中,安装Apache之后, /var/www/文件夹指向的是DocumentRoot

provision基于provider: VirtualBox, VMware, AWS
provision tools包括: shell scripts, chef, puppet…

猜你喜欢

转载自blog.csdn.net/u013867301/article/details/83381058
今日推荐