在Windows上设置CloudStack开发环境

    1)安装 Cygwin.

Cygwin 可以为你的windows提供一个类似Unix 的bash shell 环境。

下载并安装Cygwin请使用 setup.exe.

  • 设置 Cygwin 安装路径为 'c:\bin\cygwin' 或 'c:\cygwin',注意安装路径不能使用空格。
  • 镜像下载地址。
  1. http://mirrors.kernel.org
  2. http://cygwin.mirrors.hoobly.com
  • 选择要安装的包
  • 默认安装的包里不包含我们开发用的包和编辑器包.
    • 在“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的位置来验证上述内容。例如

$ which java<font></font>

/cyg/c/bin/Java/jdk1.7.0_25/bin/java<font></font>

<font></font>

Administrator@cc-svr10 ~<font></font>

$ which javac<font></font>

/cyg/c/bin/Java/jdk1.7.0_25/bin/javac<font></font>

    3)安装适用于Windows的Python 2.7

如果在Cygwin安装中对python2.7.exe进行了符号链接,则可以跳过此步骤。  

CloudStack包含部分Python代码。我知道你刚刚安装了Cygwin Python,但maven构建过程的某些部分也需要“本机”python安装,因为它无法访问Cygwin安装。

    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。

Administrator@cc-svr10 ~<font></font>

$ easy_install mysql-connector-python<font></font>

Searching for mysql-connector-python<font></font>

Reading http://pypi.python.org/simple/mysql-connector-python/<font></font>

Best match: mysql-connector-python 1.0.10<font></font>

Downloading http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-1.0.10.zip<font></font>

Processing mysql-connector-python-1.0.10.zip<font></font>

Writing /tmp/easy_install-ZFHHNn/mysql-connector-python-1.0.10/setup.cfg<font></font>

Running mysql-connector-python-1.0.10/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ZFHHNn/mysql-connector-python-1.0.10/egg-dist-tmp-wICK6D<font></font>

zip_safe flag not set; analyzing archive contents...<font></font>

Adding mysql-connector-python 1.0.10 to easy-install.pth file<font></font>

<font></font>

Installed /usr/lib/python2.7/site-packages/mysql_connector_python-1.0.10-py2.7.egg<font></font>

Processing dependencies for mysql-connector-python<font></font>

Finished processing dependencies for mysql-connector-python<font></font>

      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
  • 将'%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窗口:

       10)生成SSH密钥

在$ HOME目录中生成ssh密钥(CloudStack Management服务器将在运行时查找)

ssh-keygen -t rsa -q

        11)弃用安装“mkisofs”

如果您已在步骤#1下创建了符号链接,请忽略此步骤。要检查使用'which'来查看mkisofs是否已经可用。例如

Administrator@cc-svr10 ~<font></font>

$ which mkisofs<font></font>

/usr/bin/mkisofs<font></font>

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 =。

例如

$ cat build/replace.properties<font></font>

DBUSER=cloud<font></font>

DBPW=cloud<font></font>

DBROOTPW=<font></font>

MSLOG=vmops.log<font></font>

APISERVERLOG=api.log<font></font>

DBHOST=localhost<font></font>

AGENTLOGDIR=logs<font></font>

AGENTLOG=logs/agent.log<font></font>

MSMNTDIR=/mnt<font></font>

COMPONENTS-SPEC=components-premium.xml<font></font>

        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配置不正确

例如

log4j:WARN No appenders could be found for logger (org.apache.commons.httpclient.params.DefaultHttpParams).<font></font>

log4j:WARN Please initialize the log4j system properly.<font></font>

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.<font></font>

解决方法1
更改配置文件的名称。例如

cp client/target/cloud-client-ui-4.2.0-SNAPSHOT/WEB-INF/classes/log4j{,-cloud}.xml

解决方法2

设置CATALINA_BASE例如 

export CATALINA_BASE=X:/path/to/dir/contains/conf/log4j-cloud.xml

       X:是Windows磁盘标签,   PropertiesUtil将找到:CATALINA_HOME或   CATALINA_BASE。

2)问题:服务器无法启动并抛出异常

java.lang.OutOfMemoryError:Java堆空间

解决方法:
启动具有太小堆的服务器时可能会出现此问题。如果使用Maven启动,请使用MAVEN_OPTS增加堆栈大小。

例如

export MAVEN_OPTS="-XX:MaxPermSize=256m -Xmx1g"<font></font>

mvn -pl :cloud-client-ui jetty:run<font></font>

在上面,-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属性来完成的

use cloud;<font></font>

update configuration set value='false' where name='developer';<font></font>

这会将开发人员模式更改为false,这与非“云”用户名相结合将跳过密钥生成。

警告: KVM在此解决方法后停止工作。还需要社区提供有关修复KVM支持的任何帮助。

4)问题: CloudStack无法在本地存储上启动系统VM

默认情况下,system.vm.use.local.storage设置为false。如果要使用本地存储,请使用GUI将其设置为true。或者,如果管理服务器已启动,则可以使用以下命令更新数据库:

use cloud;<font></font>

update configuration set value='true' where name='system.vm.use.local.storage';<font></font>

如果管理服务器正在运行,则必须重新启动它。

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文件:

#!/usr/bin/bash<font></font>

cygstart --action=runas "$@"

    然后chmod + x / bin / sudo 

https://cwiki.apache.org/confluence/display/CLOUDSTACK/Setting+up+a+CloudStack+dev+environment+on+Windows

猜你喜欢

转载自blog.csdn.net/zhaoyishi/article/details/84110013
今日推荐