天天看點

搭建CloudStack環境(Windows版)

應項目需求,需要使用CloudStack搭建雲平台,結合官方文檔和網上資料,網上資料參差不齊,最後還是自己總結一下安裝CloudStack的詳細教程。

目錄

Step 1) 安裝Cygwin

Step 2) 安裝JDK

Step 3) 安裝Python 2.7

Step 4) 安裝Tomcat 6+

Step 5) 安裝MySQL

Step 6) 安裝Python connector for MySQL

Step 7) 安裝Ant

Step 8) 安裝Maven 3.0

Step 9) 安裝mkisofs

Step 10) 下載下傳CloudStack源代碼

Step 11) 生成SSH Key

Step 12) 配置CloudStack mysql的密碼

Step 13) 建構和運作項目

常見問題

Step 1) 安裝Cygwin

要安裝Cygwin,需要下載下傳并運作安裝程式,使用以下鏡像進行正确下載下傳和安裝。

  • http://cygwin.com/setup.exe
  • http://mirrors.kernel.org
  • http://cygwin.mirrors.hoobly.com

Cygwin和很多程式不喜歡路徑中的空格。當安裝路徑時,使用例如“C:\bin\cygwin”或“C:\cygwin”之類無空格的路徑。

在Cygwin的安裝過程中,需要選擇從網絡下載下傳安裝還是從本地安裝,筆者是從網絡下載下傳安裝的,如圖下圖所示:

搭建CloudStack環境(Windows版)

點選下一步選擇鏡像,如果鏡像清單加載失敗,可以自行添加鏡像。如圖:

搭建CloudStack環境(Windows版)

輸入網易鏡像,http://mirrors.163.com/cygwin/,再點選Add。最後

選擇http://mirrors.163.com,再點選下一步,安裝選項将下載下傳、緩存和安裝您選擇的軟體包。

1)進入Select Packages界面:

2)選擇要安裝的預設軟體包是不夠的,因為不包括開發和公共編輯器。

3)在“Devel”下,選擇git作為“Install”。

4)在“Editors”下,根據你希望從Cygwin指令行獲得的内容選擇vim或emacs,筆者我選的vim編輯器;

5)在“Libs”下,選擇libsasl2;

6)在“Net”下,選擇cacertificates和openssh;

7)為“Install”選擇Python;

8)在“Utils”下,選擇genisoimage和mkisofs

9)根據選擇的鏡像(大約30分鐘或更長),下載下傳可能會很慢。

10)将不必要的軟體包類别設定為“uninstall”,例如KDE和GAMES。

安裝後,請執行以下操作。這将確定maven建構可以通路這兩個實用程式:

1 使用管理者權限打開指令提示符。

2 cd到安裝cygwin的目錄,即C:\cygwin\bin,建立mkisofs和genisoimage以及python的軟連結。

..\bin> mklink mkisofs.exe genisoimage.exe

..\bin> mklink python.exe python2.7.exe
           

3 運作Cygwin。

在/etc/fstab中将:“none/cygdrive cygdrive binary,posix=0,user 0 0” 改為 “none/cyg  cygdrive binary,posix=0,user 0 0”。輸入/cyg/c來代替/cygdrive/c來換一個不同的驅動器,這樣會更短。它還删除了導緻生成問題的posix acl語義,因為生成試圖操作檔案權限,并導緻Windows檔案系統出現大問題。

搭建CloudStack環境(Windows版)

完成安裝之後,還可以再次運作cygwin setup來更新包。在這種情況下,它将使用您最後選擇的包作為預設值。

注意:打開Cygwin shell時,Windows環境變量(包括PATH)将會導入shell環境。

Step 2) 安裝JDK

1) 可以從http://www.oracle.com/technetwork/java/javase/downloads/index.html下載下傳最新的JDK。

2 )選擇與O/S類型(32位或64位)相對應的自安裝可執行檔案。

3 )當詢問安裝路徑時,盡量使用沒有空格的路徑。例如,“C:\bin\Java\jdk1.7.0_25”。

4 )注意您正在安裝它的位置。将Windows系統變量JAVA_HOME設定為此路徑。

5 )删除使用者JAVA_HOME變量,以防止系統變量被覆寫。

6 )将%JAVA_HOME%\bin添加到PATH系統變量。

通過打開cygwin終端并使用它來發現java和javac的位置來驗證以上内容。如下圖:

$ which java

/cyg/c/bin/Java/jdk1.7.0_25/bin/Java

$ which javac

/cyg/c/bin/Java/jdk1.7.0_25/bin/javac
           

Step 3) 安裝Python 2.7

如果您在Cygwin安裝中建立了python2.7.exe的軟連結,則可以跳過此步驟。

CloudStack包含Python代碼的一部分。剛剛我們安裝了Cygwin Python,但是maven建構過程的某些部分還需要“本機”Python安裝,因為它無法通路Cygwin安裝。

1)從https://www.python.org/ftp/python/下載下傳并安裝。

2)還可以從http://pypi.python.org/pypi/setuptools下載下傳并安裝setuptools。

3)将路徑(通常是C:\Python27)添加到Windows系統環境變量路徑中。

Step 4) 安裝Tomcat 6+

可忽略此步驟。

出于開發目的,可以不需要Apache Tomcat。有一些Maven腳本可用來啟動Jetty中的管理伺服器,它提供了Tomcat功能。

Apache Tomcat是托管CloudStack管理伺服器的開源web伺服器和servlet容器。

Step 5) 安裝MySQL

從http://dev.mysql.com/downloads/mysql/5.0.html#downloads下載下傳。

推薦使用5.1.x,然而,開發人員是使用的5.5版本。

在環境變量中添加mysql\bin目錄。在Cygwin可以通路到mysql。

Step 6) 安裝Python connector for MySQL

Python 2.7的MySQL connector的下載下傳位址為http://dev.mysql.com/downloads/connector/python/,但此種下載下傳安裝的方式可能會報錯,需要各種依賴。

推薦使用以下方式 pip mysql-python安裝:

從https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python下載下傳驅動,打開網頁Ctrl+F搜尋mysql-python,選擇對應版本下載下傳,如圖。

搭建CloudStack環境(Windows版)

下載下傳完後,打開cmd利用pip安裝mysql-python,如圖。

搭建CloudStack環境(Windows版)

Step 7) 安裝Ant

手動安裝Ant僅針對CloudStack 4.0需要。

Ant隻有壓縮包,沒有安裝檔案。将Ant壓縮包解壓到希望運作Ant的目錄下,路徑中不 要有空格,如“c:\csdev\ant”。增加Windows系統變量ANT_HOME,設定其值為Ant的安裝 路徑。修改系統變量PATH,将“;%ANT_HOME%\bin”添加到變量值的最後。 測試環境變量時,可以打開Cygwin,執行指令“which ant”,此時将傳回Ant執行檔案 的路徑。

Step 8) 安裝Maven 3.0

Maven的下載下傳位址為http://maven.apache.org/download.html。CloudStack需要使用 Maven 3.x版本。 Maven隻有壓縮包,沒有安裝檔案。将Maven壓縮包解壓到希望運作Maven的目錄下, 路徑中不要有空格,如“c:\csdev\maven”。增加Windows系統變量M2_HOME,設定其值為 Maven的安裝路徑,如“c:\csdev\maven”。增加Windows系統變量M2,設定其值“%M2_HOME%\bin”。修改系統變量PATH,将“;%M2%”添加到變量值的最後。

測試環境變量時,可以打開Cygwin,執行指令“which mvn”,此時将傳回Maven執行 檔案的路徑。

Step 9) 安裝mkisofs

如果您已經在步驟1下建立了軟連結,請忽略此步驟。使用“which”檢查mkisofs是否已經可用。如下:

$ which mkisofs

/usr/bin/mkisofs

Cygwin的mkisofs是一個軟連結。這些不能用于建構。

相反地,需要從http://svnpenn.blogspot.com/2011/06/mkisofs-forwindows_24.html下載下傳mkisofs,放在 Cygwin\bin目錄下,然後建立軟連結。

Step 10) 下載下傳CloudStack源代碼

打開Cygwin,執行指令“cd /”,建立opt目錄(自定義)。 執行“git clone https://git-wip-us.apache.org/repos/asf/CloudStack.git”指令,也可以下載下傳源代碼的ZIP包并解壓到opt目錄。

搭建CloudStack環境(Windows版)

Step 11) 生成SSH Key

在$HOME目錄中生成ssh密鑰(CloudStack管理伺服器将在運作時查找此密鑰)。

可以直接使用預設值,指令如下:

$ ssh-keygen -t rsa –q

注意:在其他目錄下執行該指令可能會失敗,此時可以先通過“cd~”指令通路 “$HOME”目錄,再執行該指令。

Step 12) 配置CloudStack mysql的密碼

修改“build/replace.properties”檔案,在這裡隻需要配置DBROOTPW參數(就是資料 庫root使用者的密碼),示例如下。

$ vim build/replace.properties

DBUSER=cloud

DBPW=cloud

[email protected]

MSLOG=vmops.log

APISERVERLOG=api.log

DBHOST=localhost

AGENTLOGDIR=logs

AGENTLOG=logs/agent.log

MSMNTDIR=/mnt

COMPONENTS-SPEC=components-premium.xml
           

Step 13) 建構和運作項目

進入目錄cloudstack 源碼目錄:

執行:

1、mvn clean

2、mvn -P deps -DskipTests=true 下載下傳依賴

3、mvn install -DskipTests=true

4、mvn -P developer -Ddeploydb -pl developer  初始化資料庫

5、運作:mvn -pl client jetty:run

在執行第5條指令時,報錯:

WARN  [c.c.u.s.Script] (main:null) Exception: 
/bin/bash -c if [ -f C:\Users\Think\.ssh\id_rsa.cloud ]; then rm -f C:\Users\Think\.ssh\id_rsa.cloud; fi; ssh-keygen -t rsa -N '' -f C:\Users\Think\.ssh\id_rsa.cloud -q
java.io.IOException: Cannot run program "/bin/bash": CreateProcess error=2, 系統
找不到指定的檔案。
...
...
Caused by: java.io.IOException: CreateProcess error=2, 系統找不到指定的檔案。
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
        at java.lang.ProcessImpl.start(ProcessImpl.java:137)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 72 more
WARN  [c.c.s.ConfigurationServerImpl] (main:null) Cannot read the public key file
java.io.FileNotFoundException: C:\Users\Think\.ssh\id_rsa.cloud.pub (系統找不到指定的檔案。)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at com.cloud.server.ConfigurationServerImpl.updateKeyPairs(Configuration
ServerImpl.java:721)
        at com.cloud.server.ConfigurationServerImpl.persistDefaultValues(Configu
rationServerImpl.java:291)
        at com.cloud.server.ConfigurationServerImpl.configure(ConfigurationServe
rImpl.java:152)
        at org.apache.cloudstack.spring.lifecycle.CloudStackExtendedLifeCycle$3.
with(CloudStackExtendedLifeCycle.java:117)
           

不要急,根據提示找問題。

1.提示“C:\Users\Think\.ssh\id_rsa.cloud.pub (系統找不到指定的檔案。)”,需要将生成的.ssh檔案複制到windows使用者目錄下,再改變密鑰檔案名稱,将id_rsa(私有密鑰)改為id_rsa.cloud,将id_rsa.pub(公有密鑰)改為id_rsa.cloud.pub。如下圖:

搭建CloudStack環境(Windows版)

2.提示"cannot run program bin/bash"指令,隻需将Cygwin\bin目錄添加到windows系統環境變量中。

問題解決,進入目錄cloudstack 源碼目錄,再次執行第5條的指令,沒有報錯資訊,啟動成功啦。

搭建CloudStack環境(Windows版)

CloudStack管理伺服器就在運作狀态了。

最後打開浏覽器通路http://localhost:8080/client,界面如下:

搭建CloudStack環境(Windows版)

輸入CloudStack初始的賬戶名(admin)和密碼(password)。登入成功後,第一次登入成功會建立區域、提供點等。點選跳過直接進入首頁如下:

搭建CloudStack環境(Windows版)

部分界面如下:

搭建CloudStack環境(Windows版)

常見問題

1) 如果啟動項目出現記憶體不足的情況,設定 Tomcat的JVM記憶體: export MAVEN_OPTS="-XX:MaxPermSize=256m -Xmx1024m -Xms256m"。

2) 修改cloudstack資料庫位址:需要修改檔案:

cloudstack/build/replace.properties

cloudstack/utils/conf/db.properties 

cloudstack/tools/devcloud/devcloud.cfg

3)執行mvn -P desp 和mvn install 時,如果不加-DskipTests=true參數,可能會有一些測試子產品報錯和一些maven測試插件報錯。注意是加-DskipTests=true,不要加-Dmaven.test.skip=true,如果加的後者,這樣會中斷編譯。

繼續閱讀