2016-08-17 50 views
0

我在一臺虛擬機中使用了serverspec,在這個虛擬機上可用的網絡非常好。如何在Windows機器上安裝Serverspec,其中不存在Internet?

但是,當我們需要將腳本交給測試人員時,他們必須將其安裝在沒有互聯網的機器上。

我試圖安裝在虛擬機中的本地文件夾中,其中可用的互聯網然後安裝在測試虛擬機中。但是,當我運行Serverspec-init它說rspec沒有找到。

似乎還需要在使用它之前安裝一些依賴的寶石。

作爲一步安裝整個捆綁包是不可能的?怎麼做?

+0

我已經通過將其打包爲rpm來完成此操作,但您也可以將其作爲tarball或docker容器。什麼路線最適合你? –

+0

@Samselvaprabu我的解決方案能幫助您嗎? – sixty4bit

+0

@ sixty4bit我發現這個鏈接是有幫助的,它爲我工作http://help.rubygems.org/kb/rubygems/installing-gems-with-no-network – Samselvaprabu

回答

2

在沒有互聯網訪問的服務器上管理寶石絕對是一個挑戰。

一個相對簡單的方法做你需要的是利用vendor/cache目錄在你的應用程序,並bundle知道它使用bundle install使用--local標誌時。

首先,下載bundler寶石的寶石檔案(.gem文件擴展名),方法是轉到Rubygems page並單擊右下角的「下載」鏈接。您需要將該文件上傳到測試服務器,然後從命令行運行$ gem install bundler-1.12.15.gem

現在你需要得到.gem存檔serverspec,它的依賴,以及其所有依賴的依賴,並把它們放到vendor/cache目錄(創建那些$ mkdir -p vendor/cache)你的應用程序中,如果他們不存在。

現在,當您將應用程序部署到服務器時,使用vendor/cache中的這些.gem文件運行bundle install --local。這將安裝寶石。您可以在bundler docs處看到--local選件的官方文檔。

+0

如果rpm和tarball是老派並且碼頭工人是新學校,那麼這將使得這是一個很酷的......中學(?)方法。 –

+0

哈哈是啊,這裏的假設是,你正在用'vendor/cache'目錄在本地設置你的應用程序,但是你可能會在將應用程序手動上傳到internet-restrictured服務器並將其解壓到那裏之前歸檔應用程序 – sixty4bit

相關問題