Vagrant Learn
今天趁着jenkins 跑automation的时候,看了下vagrant的一些文档,作为一个新生devops,vagrant不知道感觉会被人diss......
Vagrant 是一个用来构建和管理虚拟机环境的工具。Vagrant 有着易于使用的工作流,并且专注于自动化,降低了开发者搭建环境的时间,提高了生产力。
Vagrant 是为了方便的实现虚拟化环境而设计的,使用 Ruby 开发,基于 VirtualBox 等虚拟机管理软件的接口,提供了一个可配置、轻量级的便携式虚拟开发环境。使用 Vagrant 可以很方便的就建立起来一个虚拟环境,而且可以模拟多台虚拟机,这样我们平时还可以在开发机模拟分布式系统。
团队新员工加入,常常会遇到花一天甚至更多时间来从头搭建完整的开发环境,而有了Vagrant,只需要直接将已经打包好的 package(里面包括开发工具,代码库,配置好的服务器等)拿过来就可以工作了,这对于提升工作效率非常有帮助。
等等,这不就是现行的docker吗!?原来docker出来之前也是有这种跨平台虚机管理和快速部署,消除环境不一致的工具的。
Vagrant基本命令
Vagrant box list 查看目前虚机中的镜像列表,vagrant box add 命名 景象名,把镜像交给vagrant管理,vagrant有个重要的配置文件vagrantfile,里面定义了该镜像的相关配置,比如网络,虚机名,内存,共享目录等。下面是共享目录的设置:
config.vm.synced_folder "C:/project/DevOps-NG", "/DevOps-NG"
那么我怎样给我所需的镜像定制化呢,我们可以在vagrantfile中定义需要安装的环境包,如下,我们安装了apache和redis,这样我们提供了一个代理和redis环境的虚机,那么我们分享给别人只需要把这个配置文件和打包好的镜像提供给他,然后就可以生成一摸一样的环境了。
当然,随着容器时代的到来,这种技术也许只能在历史代码中存在了