2012-05-21 357 views
2

我目前使用jenkins在預期的發佈條件下部署應用程序,並且我被迫以root用戶的身份在部署的系統上運行JUnit測試因爲應用程序具有某些只能由根用戶訪問的文件)。構建步驟:「調用螞蟻」與「從shell運行螞蟻」

而不是使用「援引蟻族」生成步驟來運行測試中,我運行ant使用sudo從「執行shell」蓋步,像...

sudo ant -file build.xml -D.... test 

因爲詹金斯用戶具有必要的根權限來執行此操作,但不能訪問上述文件。

我意識到這樣做會在工作空間中創建一些文件夾,但其權限不正確,但是我從「執行shell」之後進行了更正。

一切似乎都很好,但感覺就像是一種解決方法。

我的問題是,有沒有這種方式運行螞蟻相比,生成步驟「調用螞蟻?」有什麼缺點?...或任何人都可以看到一個更好的方式做到這一點?

+0

我應該補充說我對windows沒有任何顧慮。它純粹是在Linux上測試(Rhel 6)感謝所有的輸入。有幾位專家給出了一些意見,感覺有點安全。歡呼 – Englishbob

回答

0

詹金斯翻譯「援引蟻族」有一個shell命令,你可以檢查此觀看構建的控制檯輸出,所以如果你已經解決了你的問題,你說的方式,我認爲這是同一

+1

感謝您的快速回復。是的,這就是我通過觀察類似工作的輸出而得出上述解決方案的方式。但是,我只是覺得可能會有一些反響。 – Englishbob

0

使用如果一切正常,螞蟻從外殼看起來並不成問題。正如你所提到的,修改後的文件權限可能是執行後的問題。

1

ANT構建步驟背後的主要思想是它提供跨平臺的一致性。所以你應該儘可能地使用它,以避免「配置地獄」 - 在不同配置數量的組合爆炸。然而,有時候,男人必須做一個男人必須做的事情。

1

鑑於您的限制,我認爲您的解決方案就好。

要回答你的問題:

...is there any disadvantage of running ant in this manner...? 

出現在腦海的主要之一是,如果你有一個分佈式部署詹金斯,有些奴隸運行Windows,有的奴隸運行UNIX,那麼這顯然不會工作(或者至少需要更多的工作 - 例如安裝/配置Cygwin)。但我不認爲這是你真正關心的事情。

可以說是更乾淨的替代解決方案是建立一個以根用戶身份運行的Jenkins從服務器(如果需要的話,還可以在Windows上使用「Administrator」)並將工作綁定到它,堅持爲您「調用Ant」Ant調用。但是這需要更多的工作來建立,可能不值得付出努力。