2012-12-12 38 views
1

在某些方面,这是厨师问题的入门。但是,我试图创建一个简单的配方,从github上签出我的jekyll代码,然后运行jekyll在本地构建它。我还没有开始担心让nginx配置运行,但我已经尝试了'before_migrate'脚本的大约100种不同的排列,并且还没有找到一种方法将jekyll加载到可用的gem或路径中做一个command "jekyll ..."Jekyll厨师配方

这是当前的配方,因为它主张:

include_recipe "git" 

application "corpsite" do 
    path "/opt/tubularlabs/corpsite" 
    repository "[email protected]:Tubular/corpsite.git" 
    revision "master" 

    deploy_key <<EOF 
-----BEGIN RSA PRIVATE KEY----- 
... 
-----END RSA PRIVATE KEY----- 
EOF 

    before_migrate do 
    execute 'Deploy Jekyll blog' do 
     chef_gem "jekyll" do 
     action :install 
     end 

     require "jekyll" 

     command "jekyll" 
     action :run 
    end 
    end 
end 

UPDATE:

原来,这个问题不是一个配方的问题在所有的,而是在HTML文档中的一个包含一个UTF-8字符和jekyll与LC_ALL=C因此barfing运行。这无疑是我尝试写的第一个配方。

由于历史的缘故,继承人的最终脚本

before_migrate do 
    chef_gem "jekyll" 

    execute 'Deploy Jekyll blog' do 
    cwd release_path 
    environment ({"LC_ALL" => "en_US.UTF-8"}) 
    command "jekyll" 
    end 
end 
+0

仅供参考,这里有一个杰基尔的食谱:https://github.com/fooforge/chef-cookbook_jekyll –

回答

2

我已经安装了宝石和之前他们需要这样的

gem_package "nokogiri" do 
    action :nothing 
end.run_action(:install) 

gem 'nokogiri' 
require 'nokogiri' 

希望这对您(作品出与杰基尔尝试过了,作品)