Chef infra 在文件中提供Apache2和Chef Solo

Chef infra 在文件中提供Apache2和Chef Solo,chef-infra,vagrant,Chef Infra,Vagrant,在过去,我曾尝试过使用Vagrant部署“本地”开发实例,但一直没有花时间来完成学习过程。我正在再次尝试,虽然我可以加载Opscode cookbook(apache2),但它无法开箱即用,因为DocumentRoot没有指向/vagrant 我明白这一点,这并不出乎意料,但我不知道如何把这一切放在一起,可以理解的是,流浪汉的文档没有太多细节。另一方面,Opscode提供了如此多的细节,以至于我内心的noob无法将我的头缠绕在它周围 下面是我现在看到的uber简单片段: config.vm.pr

在过去,我曾尝试过使用Vagrant部署“本地”开发实例,但一直没有花时间来完成学习过程。我正在再次尝试,虽然我可以加载Opscode cookbook(apache2),但它无法开箱即用,因为
DocumentRoot
没有指向
/vagrant

我明白这一点,这并不出乎意料,但我不知道如何把这一切放在一起,可以理解的是,流浪汉的文档没有太多细节。另一方面,Opscode提供了如此多的细节,以至于我内心的noob无法将我的头缠绕在它周围

下面是我现在看到的uber简单片段:

config.vm.provision :chef_solo do |chef|
  chef.cookbooks_path = "cookbooks"
  chef.add_recipe "apache2"

  # You may also specify custom JSON attributes:
  # chef.json = { :mysql_password => "foo" }
end
我知道那里没有多少。在某种程度上,我知道
chef.json
组件参与了我想要做的事情,但我不知道如何做。有人能提供一个以流浪者为中心的示例,说明我如何为正在安装的Apache2实例配置
DocumentRoot
?我希望一旦我有了一个例子,我就会知道如何把我需要的所有东西拼凑起来

另外,出于好奇,我为什么要打电话给厨师。添加食谱来加载Apache2食谱?还是我误解了语法


感谢您的帮助。

我还没有仔细看过apache2食谱,但我相信该食谱附带的默认网站模板指向/var/www。鉴于此,我认为您有两种选择。1) 使用apache2 cookbook附带的站点资源创建新站点。2) 通过vagrant将您的web根目录装载到/var/www。哪种方法取决于你的目标。如果你只是想测试你的网站,我推荐2个。为此,您将向vagrant配置中添加如下内容:

config.vm.share_folder "web", "/var/www", "~/src/www"
其中第一个参数是共享的任意id,第二个是目标目录(/var/www,因为这是apache配置中指向的),第三个是共享的本地路径

注意:Virtualbox不适合使用符号链接,因此如果您的共享中有符号链接,您需要添加以下内容:

config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/graph", "1"]
这将使符号链接能够工作

如果你有兴趣学习厨师,那么你可以采取方法1。这将需要创建您自己的食谱,并编写一个模板,该模板可以结合apache站点定义生成适当的配置文件。如果这是您的目标,那么我可以扩展这个答案,为您提供如何实现这一目标的详细信息


HTH.

chef.add_recipe“apache2”
表示添加默认的apache2配方。它与chef.add_recipe“apache2::default”相同。您能否扩展答案,以提供有关如何创建指向/vagrant共享的新虚拟主机的详细信息?