如何整合Vagrant和Puppet来创建VirtualBox虚拟主机?

日期: 2011-04-14 作者:James Turnbull翻译:周毅 来源:TechTarget中国 英文

Mitchell Hashimoto的Vagrant专为开发人员设计,它让开发人员可以在笔记本上创建简单且可重复使用的基于VirtualBox的虚拟机,这些虚拟机可用作测试主机。但是在Dev/Op环境中的系统管理员发现该工具可以为原型设计或是作为现成的测试、升级主机创建可重复使用虚拟机后,它变成了开源系统管理的香饽饽。Vagrant与Puppet和Chef的整合是为了确保配置管理自动化来搭建主机。所以任何为开发主机创建的配置也都能用于生产主机。

  Vagrant介绍   让我们现在快速地介绍一下Vagrant,你将了解如何通过使用Puppet安装和创建第一个box。首先,我们需要安装Orac……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

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页。

作者

James Turnbull
James Turnbull

暂无

相关推荐