Mitchell Hashimoto的Vagrant专为开发人员设计,它让开发人员可以在笔记本上创建简单且可重复使用的基于VirtualBox的虚拟机,这些虚拟机可用作测试主机。但是在Dev/Op环境中的系统管理员发现该工具可以为原型设计或是作为现成的测试、升级主机创建可重复使用虚拟机后,它变成了开源系统管理的香饽饽。Vagrant与Puppet和Chef的整合是为了确保配置管理自动化来搭建主机。所以任何为开发主机创建的配置也都能用于生产主机。
Vagrant介绍 让我们现在快速地介绍一下Vagrant,你将了解如何通过使用Puppet安装和创建第一个box。首先,我们需要安装Orac……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
Mitchell Hashimoto的Vagrant专为开发人员设计,它让开发人员可以在笔记本上创建简单且可重复使用的基于VirtualBox的虚拟机,这些虚拟机可用作测试主机。但是在Dev/Op环境中的系统管理员发现该工具可以为原型设计或是作为现成的测试、升级主机创建可重复使用虚拟机后,它变成了开源系统管理的香饽饽。Vagrant与Puppet和Chef的整合是为了确保配置管理自动化来搭建主机。所以任何为开发主机创建的配置也都能用于生产主机。
Vagrant介绍
让我们现在快速地介绍一下Vagrant,你将了解如何通过使用Puppet安装和创建第一个box。首先,我们需要安装Oracle虚拟机虚拟化平台。为你的主机下载并安装相应的软件包。这些软件包适用于Linux、OSX、Windows和Solaris。这里我们将安装Red Hat Enterprise Linux 6的软件包。
$ wget http://download.virtualbox.org/virtualbox/4.0.4/VirtualBox-4.0-4.0.4_70112_rhel6-1.i686.rpm
$ sudo rpm -Uvh VirtualBox-4.0-4.0.4_70112_rhel6-1.i686.rpm
(注意:如果你安装的不是VirtualBox 4.x,要注意,VirtualBox 3.x版本仅适用于Vagrant 0.6.9和更早版本)
你还需要Ruby和Rubygem,你能很容易地从平台软件包管理器上安装它们(如果它们已经安装),例如在Red Hat Enterprise Linux 6上:
$ sudo yum install ruby rubygems
然后使用RubyGem,你可以安装Vagrant:
$ sudo gem install vagrant
Vagrant基于基本box的概念建立,你可以下载和使用这些box。 要下载这些box请访问可用列表。
我们要下载一个基本的Ubuntu box作为开始使用的Vagrant box命令。首先,创建一个目录:
$ mkdir /home/james/vagrant && cd /home/james/vagrant
然后添加我们的Vagrant box:
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
这里将下载一个Lucid 32位base box命名为lucid32。使用初始化命令来初始化该box。
$ vagrant init
该命令会把该box加入到Vagrant,并准备启动它。我们可以使用下面命令启动它。
$ vagrant up
该命令将配置并启动这个Vagrant box。一旦启动完毕,我们就可以使用ssh命令来连接它。
$ vagrant ssh
通过SSH连接Vagrant box,你可以进行交互,并像任何其它虚拟机一样进行管理。 如果你要关闭Vagrant box,你有两个办法。其一,暂停它:
$ vagrant suspend
该命令暂停虚拟机,当然你也可以恢复它,如下所示:
$ vagrant resume
但更重要的功能是,你可以完全删除你的box:
$ destroy vagrant
该命令将box重置到最初的配置。你的所有配置和数据都将被删除。但同样地,你也可以删除任何在其上的开发或测试,让它们神奇地返回到原始状态,重新开始。你可以快速地看到它如何变成用于测试和原型设计的强大工具。
但很多时候都需要配置各种不同的box,或者你可以想一个快速的办法来建立一个Vagrant box进行测试。我们可以使用一些简单的代码来实现这些。在独奏模式(无服务器)或是在客户端服务器模式里,Vagrant支持使用Puppet。我们要举的例子就是在独奏模式下运用它。
在Vagrant主目录下创建一个名为manifests的目录(/home/james/vagrant):
$ mkdir /home/james/vagrant/manifests
然后在新建的目录下,创建一个Puppet清单文件,并命名该文件名为lucid32.pp。在Vagrant中,除了使用这个默认设置外,你也可以配置这些信息。如果你已经有Puppet清单了,你可以使用现有的,这是将产品主机复制成Vagrant虚拟主机的快速方法。
$ touch /home/james/vagrant/manifests/lucid32.pp
在文件里,加入一个简单清单:
class lucid32 {
package { "apache2":
ensure => present,
}service { "apache2":
ensure => running,
require => Package["apache2"],
}
}include lucid32
这个清单将安装Apache软件包并启动Apache服务。
我们现在需要启动Vagrant配置文件里的Puppet。这个文件在our /home/james/vagrant目录里,我们需要打开并编辑其中的内容,请加入如下命令行:
Vagrant::Config.run do |config|
...
# Enable the Puppet provisioner
config.vm.provision :puppet
end
最重要的命令行是config.vm.provision :puppet。该命令行的作用是命令Vagrant去使用Puppet。Puppet将安装在你刚下载的base box上。在这个例子中,其它的base box也可以使用已经安装的Puppet(你可以创建自己的box)。
现在我们可以启动Vagrant box:
$ vagrant up
或者如果Vagrant box已经运行,那我们可以做一些启动配置,如:
$ vagrant reload
该命令将启动和执行你所指定的Puppet和清单文件,通过安装Apache和启动Apache服务来配置box。默认情况下,Vagrant使用VirtualBox端口来转发80端口,所以你可以通过浏览器浏览本地机器的80端口,来查看默认的Apache页。
相关推荐
-
为IT变革做好准备!
随着云计算、超融合基础架构等新技术的到来,IT人士必须承认,很少有员工愿意或者已经做好变更的准备。变革是非常混乱的。因此,最好的方法是要臣服于它,接受变革。
-
如何解决OpenSUSE 12.3中VirtualBox启动问题
如果你在启动OpenSUSE 12.3虚拟机时遇到Kernel driver not installed (rc=-1908) 错误,本文帮你解决这个问题。
-
EMC与Puppet合作 共同开发开源软件
Puppet Labs与EMC合作,开发开源软件Razor,这个软件能让IT自动从裸机环境对服务器资源调配。这让很多人感到惊奇。
-
用配置管理工具优化服务器和人员的比率
通过使用配置管理工具,能够减少人员成本,使操作人员和服务器的比率更加优化。但是是选择自动化程度高的软件,还是选择能让程序员得以发挥的软件呢?