搭建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版)_第1张图片

点击下一步选择镜像,如果镜像列表加载失败,可以自行添加镜像。如图:

搭建CloudStack环境(Windows版)_第2张图片

输入网易镜像,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版)_第3张图片

 

完成安装之后,还可以再次运行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版)_第4张图片

下载完后,打开cmd利用pip安装mysql-python,如图。

搭建CloudStack环境(Windows版)_第5张图片

 

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版)_第6张图片

 

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

DBROOTPW=admin@123

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.(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.(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版)_第7张图片

2.提示"cannot run program bin/bash"命令,只需将Cygwin\bin目录添加到windows系统环境变量中。

问题解决,进入目录cloudstack 源码目录,再次执行第5条的命令,没有报错信息,启动成功啦。

搭建CloudStack环境(Windows版)_第8张图片

CloudStack管理服务器就在运行状态了。

 

最后打开浏览器访问http://localhost:8080/client,界面如下:

搭建CloudStack环境(Windows版)_第9张图片

输入CloudStack初始的账户名(admin)和密码(password)。登录成功后,第一次登录成功会创建区域、提供点等。点击跳过直接进入首页如下:

搭建CloudStack环境(Windows版)_第10张图片

部分界面如下:

搭建CloudStack环境(Windows版)_第11张图片

 

常见问题

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,如果加的后者,这样会中断编译。

 

你可能感兴趣的:(CloudStack)