1)安装 Cygwin.
Cygwin 可以为你的windows提供一个类似Unix 的bash shell 环境。
下载并安装Cygwin请使用 setup.exe.
- 设置 Cygwin 安装路径为 'c:\bin\cygwin' 或 'c:\cygwin',注意安装路径不能使用空格。
- 镜像下载地址。
- 选择要安装的包
- 默认安装的包里不包含我们开发用的包和编辑器包.
- 在“DeVel'”下,选择Git来“安装”。或者设置整个“开发”类别来安装。这样安装时间比较长,但操作起来简单。
- 在“编辑器”下,选择VIM或Emacs,这可以根据个人爱好选择。我选择了vim.
- 在 'Libs' 下, 选择 'libsasl2'
- 在 'Net' 下, 选择 'ca-certificates' 和 'openssh'
- 选择Python为 'Install'
- 在 'Utils' 下, 选择 'genisoimage' 和 'mkisofs'
- 安装过程会很慢,这是由你选择的包的多少有关(有可能30分钟或更长时间)
- 设置不需要的包为 'Uninstall', 例如 'KDE' 和 'Games'.
- 第一次安装,为了保证 maven build 能够连接到以下两个实用程序需要执行以下操作
- 以管理员身份打开命令行程序(cmd.exe).
- 进入 Cygwin 的安装目录,我这里是 c:\cygwin\bin
- 执行命令 :mklink mkisofs.exe genisoimage.exe
- 执行命令:mklink python.exe python2.7.exe
- 执行命令:Run Cygwin
- 打开文件 /etc/fstab 在文件中加入: "none /cyg cygdrive binary,noacl,posix=0,user 0 0". 这一句做了两件事。 它删除了导致构建问题的posix acl语义,不是/ cygdrive / c更改为不同的驱动器,键入/ cyg / c更短,因为构建试图操纵文件权限并导致Windows文件系统出现大问题。
- 完成安装以后, 你应该再运行一次 Cygwin setup.exe 来更新所有包。这次他会默认更新你上次选好的包。
NB: 当您打开CygWin shell时,Windows环境变量,包括PATH,被导入到shell环境中。这样再安装扩展程序时,会自动更新windows环境变量。
*注意: * 这时候 vi 编辑器没有提供颜色语法突出显示。在命令行模式下 Backspace 键只是移动游标。
解决方法: cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
2)安装JDK。
您可以从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载最新的JDK 。
- 选择与您的O / S类型(32或64位)对应的自安装可执行文件
- 当被问及安装路径时,请使用没有空间的东西。例如c:\ bin \ Java \ jdk1.7.0_25
- 请注意您要安装它的位置。将Windows系统变量JAVA_HOME设置为此路径。
- 我删除了用户'JAVA_HOME'变量以防止覆盖System变量。
- 将%JAVA_HOME%\ bin添加到PATH系统变量
Administrator @ cc-svr10~
通过打开cygwin终端并使用它来发现java和javac的位置来验证上述内容。例如
|
3)安装适用于Windows的Python 2.7
如果在Cygwin安装中对python2.7.exe进行了符号链接,则可以跳过此步骤。
CloudStack包含部分Python代码。我知道你刚刚安装了Cygwin Python,但maven构建过程的某些部分也需要“本机”python安装,因为它无法访问Cygwin安装。
- 从http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi下载并安装
- 还可以从http://pypi.python.org/pypi/setuptools下载并安装setuptools
- 将路径(通常为C:\ Python27)添加到Windows系统环境变量PATH
4)安装最新的Eclipse
Eclipse可从http://www.eclipse.org/downloads/获得
- Eclipse没有特定于操作系统的安装程序。因此,您下载的.zip不包含.MSI文件
- 在撰写本文时,最新版本是Eclipse Juno(4.2)
- 将解压缩的下载放在要运行Eclipse的文件夹中。
- 在eclipse.ini中修改以下内容。该文件可以在你安装eclipse的目录中找到。
- 将launcher.XXMaxpermSize更改为1024m
- 添加或更改为-Xms1024m
- 添加或更改为-Xmx2048m
4a)将插件添加到Eclipse
可选:CloudStack包含部分Python代码,最好使用PyDev Eclipse插件进行编辑
- 打开Eclipse,如果尚未打开。
- 导航到工具栏菜单帮助 - >安装新软件...
- 使用Add ...按钮,将站点http://pydev.org/updates添加到Work with下拉列表中
- 'PyDev'应出现在下面的窗口中,选择并继续执行向导。
- 密切关注安装,可能会提示您确认您信任PyDev插件
M2E插件允许Eclipse导入CloudStack的pom.xml因此,pom.xml文件可以替代Eclipse通常使用的.project文件。
使用Eclipse安装M2E
- 打开Eclipse,如果尚未打开。
- 导航到工具栏菜单帮助 - >安装新软件...
- 从下拉列表中选择 -
所有可用站点。- 等待'Pending ...'从包含Name和Version列的框中消失
- 使用文本'm2e'过滤结果
添加M2Eclipse
可选:安装EGit以提供与Eclipse的git集成
- 单击“关于”
- 点击Eclipse Market Place
- 单击“热门”选项卡
- 找到EGit - Git Team Provider
5)可选:安装Apache Tomcat 6.0.33
出于开发目的,您不需要Apache Tomcat。Maven脚本可用于在Jetty中启动管理服务器,它提供Tomcat功能。
Apache Tomcat是托管CloudStack管理服务器的开源Web服务器和servlet容器。
- Web服务器部分是纯Java。相比之下,Apache Web服务器是用C语言编写的
- servlet容器符合Java Servlet和JavaServer Pages(JSP)规范。
您可以从http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.33/bin/apache-tomcat-6.0.33.exe下载Tomcat
- 与Eclipse不同,下载的Tomcat是一个自安装的可执行文件。
- 将端口保留为8080,用户名/密码为空
- 您的JRE可能会被自动检测到。如果没有,它可能是C:\ Program Files \ Java \下的JDK或JRE
- 不要使用默认安装文件夹。c:\ Program Files下的文件夹受特殊访问控制的约束,以后会产生问题。
Use C:\cstoosls\Tomcat6.0
代替
要通知Cygwin环境Tomcat的位置,请更新Windows环境变量。
- 将CATALINA_HOME定义为Windows系统环境变量,并为其指定Tomcat的安装文件夹的值。例如
C:\cstoosls\Tomcat6.0
- 与JAVA不同,JAVA是以产品命名的环境变量来定位其安装目录(JAVA_HOME),而Tomcat使用以servlet容器组件命名的环境变量(CATALINA_HOME)
- 将'%CATALINA_HOME%\ bin'添加到Windows系统环境变量PATH
注意:通过打开Cygwin shell并键入“Tomcat6”来测试环境变量。这应该返回Tomcat可执行文件的路径。
6)为Windows安装MySQL。
从http://dev.mysql.com/downloads/mysql/5.0.html#downloads下载自安装exe
- 建议使用最新的5.1.x; 但是,开发人员也在使用5.5
- 在PATH中添加mysql bin目录。当您在Cygwin时,这将提供对mysql可执行文件的访问。
- 还可以下载MySQL Workbench UI,为自己提供MySQL数据库的UI。
6a)为Windows for MySQL安装Python连接器。
安装方式取决于您使用的是与Cygwin一起分发的Python2.7还是通过MSI安装的Python2.7。
在这两种情况下,请转到下载页面:http://dev.mysql.com/downloads/connector/python/#downloads
对于.MSI,选择Platform为“Microsoft Windows”,并使用ver。2.7 MSI。
对于Cygwin,最简单的方法是使用easy_install或pip(Source)Eg。
|
7)DEPRECATED:安装Apache Ant
只有构建CloudStack 4.0才需要手动安装Ant。
Ant可以从http://ant.apache.org/bindownload.cgi获得
- Ant没有特定于操作系统的安装程序。因此,您下载的.zip不包含.MSI文件
- 将解压缩的下载放在要运行Ant的文件夹中。
要通知Cygwin环境Ant的位置,请更新Windows环境变量。
- 将ANT_HOME定义为Windows系统环境变量,并为其指定Tomcat的安装文件夹的值。例如
C:\Program Files\Apache Software Foundation\apache-ant-1.8.4
- 有关如何更新Windows系统环境变量的详细信息,请参见本说明如何安装Ant http://madhukaudantha.blogspot.com/2010/06/installing-ant-for-windows-7.html
- 将'%ANT_HOME%\ bin'添加到Windows系统环境变量PATH
注意:打开一个Cygwin shell并输入'which ant'来测试你的环境变量。这应该返回ant可执行文件的路径。
8)安装Apache Maven 3.0
Maven可从http://maven.apache.org/download.html获得
- CloudStack需要3.x版
- Maven没有特定于操作系统的安装程序。因此,您下载的.zip不包含.MSI文件
- 将解压缩的下载放在要运行Maven的文件夹中。
- 选择文件夹,使路径中没有空格! 例如
C:\bin\maven
要通知Cygwin环境Maven所在的位置,请更新Windows环境变量。
- 将M2_HOME定义为Windows系统环境变量,例如
C:\bin\maven
- 将M2定义为值为%M2_HOME%\ bin的Windows系统环境变量
- 将'%M2%'添加到Windows系统环境变量PATH
注意:打开一个Cygwin shell并输入'which mvn'来测试你的环境变量。这应该返回maven可执行文件的路径。
9)下载cloudstack-oss源
从Cygwin窗口:
- 创建一个cloudstack-oss目录,cd进入它
- 使用git clone从https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git下载回购
10)生成SSH密钥
在$ HOME目录中生成ssh密钥(CloudStack Management服务器将在运行时查找)
ssh-keygen -t rsa -q
11)弃用安装“mkisofs”
如果您已在步骤#1下创建了符号链接,请忽略此步骤。要检查使用'which'来查看mkisofs是否已经可用。例如
|
Cygwin的mkisofs是一个软链接。这些不适用于构建。
相反,从http://svnpenn.blogspot.com/2011/06/mkisofs-for-windows_24.html下载.exe。
- 放在/ bin中
注意:通过打开Cygwin shell并键入“which mkisofs”来测试环境变量。这应该返回mkisofs可执行文件的路径。
12)告诉CloudStack mysql的密码
密码分配给build / replace.properties文件中的DBROOTPW =。
例如
|
13)构建
要清除现有工件,请转到cloudstack源文件夹并运行:
mvn clean
要编译Apache CloudStack,请转到cloudstack源文件夹并运行:
mvn install -P developer,systemvm
要部署数据库:
mvn -P developer -pl developer -Ddeploydb
请参阅疑难解答部分的解决方法
要在本地Jetty服务器中运行:
mvn -pl :cloud-client-ui jetty:run
使用http:// localhost:8080打开mgmt服务器控制台 ,并根据需要进行配置。
14)可选:开始使用DevCloud
DevCloud提供了一个独立的CloudStack开发环境,该环境在VirtualBox VM中运行。有关详细信息,请参阅DevCloud
故障排除
1)问题:Log4j配置不正确
例如
|
解决方法1
更改配置文件的名称。例如
|
解决方法2
设置CATALINA_BASE例如
|
X:是Windows磁盘标签, PropertiesUtil将找到:CATALINA_HOME或 CATALINA_BASE。
2)问题:服务器无法启动并抛出异常
java.lang.OutOfMemoryError:Java堆空间
解决方法:
启动具有太小堆的服务器时可能会出现此问题。如果使用Maven启动,请使用MAVEN_OPTS增加堆栈大小。
例如
|
在上面,-Xmx1g
设置堆大小。例如-Xmx2g
,会给你一个2 gig堆。
3)问题:服务器无法启动并抛出异常
WARN utils.script.Script(main-)异常:/ usr / local / bin / bash
>> -c echo
> ~scvmm
>> java.io.IOException:无法运行程序“/ usr / local / bin / bash”:
> CreateProcess error = 2,系统找不到指定的文件
>>在java.lang.ProcessBuilder.start(未知来源)
>> com.cloud.utils.script.Script.execute(Script.java:184)
>>
>> .... >>>
....
>>错误cloud.servlet.CloudStartupServlet(main-)异常启动
>管理服务器
>> com.cloud.utils.exception.CloudRuntimeException:无法获取主页
>帐户目录:scvmm
解决方法:
跳过密钥生成和cloudstack工作正常。
这是通过在MySQL中运行以下SQL语句,按如下方式在配置表中设置developer属性来完成的
|
这会将开发人员模式更改为false,这与非“云”用户名相结合将跳过密钥生成。
警告: KVM在此解决方法后停止工作。还需要社区提供有关修复KVM支持的任何帮助。
4)问题: CloudStack无法在本地存储上启动系统VM
默认情况下,system.vm.use.local.storage设置为false。如果要使用本地存储,请使用GUI将其设置为true。或者,如果管理服务器已启动,则可以使用以下命令更新数据库:
|
如果管理服务器正在运行,则必须重新启动它。
5)问题:服务器不会以线程Timer-2中的异常启动,线程Timer-1中的异常。
export MAVEN_OPTS =“ - Xmx2048m -XX:MaxPermSize = 800m -Xmx2g -Xdebug -Xrunjdwp:transport = dt_socket,address = 8787,server = y,suspend = n”
6)问题: Eclipse在资源利用率高的情况下变得没有响应:
转到Eclipse文件夹并在.ini配置文件中更改以下(到最后)。
-vmargs
-Dosgi.requiredJavaVersion = 1.5
-Xms384m
-Xmx2048m
7)问题:找不到sudo命令
解决方法,使用脚本内容创建名为/ bin / sudo的bash文件:
|
然后chmod + x / bin / sudo