2014-07-02 82 views
0

我想弄清楚如何使用JClouds-Chef庫來配置虛擬機。根據他們的Installation Guide我可以創造一個pom.xml看起來像:Maven不拉下正確的JClouds-廚師依賴樹

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <properties> 
     <jclouds.version>1.7.3</jclouds.version> 
    </properties> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-app</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.jclouds</groupId> 
      <artifactId>jclouds-all</artifactId> 
      <version>${jclouds.version}</version> 
     </dependency> 
    </dependencies> 
</project> 

和運行mvn dependency:copy-dependencies,它應該拉下所有JClouds廚師需要的JAR文件。

所以我做了這個,然後將所有的JAR(有一個lot)添加到我的項目的構建路徑。然後我試圖創建ChefContext實例(就像他們的教程顯示的例子):

ChefContext context = null; 

,且Eclipse不能解決/找到ChefContext類。掃描Maven下載的JAR之後,果然,ChefContext不會出現在任何地方!

於是我問:?什麼**的具體步驟,我需要得到所有包含JClouds,廚師和其所有相關的JAR文件*

回答

2

必須明確添加廚師的依賴性節:

<dependency> 
    <groupId>org.apache.jclouds.api</groupId> 
    <artifactId>chef</artifactId> 
    <version>${jclouds.version}</version> 
</dependency> 

您可以參考jclouds中的chef-basics示例中的工作示例。

+0

Thanks @Andrew Gaul(+1) - 好奇,我是否需要首先在我的機器上安裝Ruby/Chef,或者您在回答中提到的依賴關係是否適合我? – IAmYourFaja

2

添加該依賴關係應該足夠了。另外,如果你想使用企業廚師特定功能,您可以添加以下一個代替:

<dependency> 
    <groupId>org.apache.jclouds.provider</groupId> 
    <artifactId>enterprisechef</artifactId> 
    <version>${jclouds.version}</version> 
</dependency> 

這就是你需要配置的唯一的事情。 jclouds將負責在您提供的節點中安裝Chef和所有必需的依賴關係。

+0

謝謝@Ignasi Barrera(+1) - 你能否通過使用'廚師'確認,我**不需要在本地安裝Ruby/Chef?如果是這樣,那麼我該如何調用Knife插件(gems)公開的功能?再次感謝! – IAmYourFaja

+0

您不需要安裝Ruby/Chef。當您配置節點時(如果您使用jcloud創建虛擬機,請使用'createNodesInGroup';如果您正在配置現有節點,則使用'runScriptOnNode'),jclouds將連接到該節點,並在那裏安裝Ruby和Chef if需要配置首次啓動所需的文件,並在本地運行「chef-client」來配置節點。 如果您按照[廚師指南](http://jclouds.apache.org/guides/chef/)中的「廚師和ComputeService的Bootstrap節點」部分,您會發現如何配置運行列表,屬性等等 –