oVirt----oVirt_engine开发配置文档

使用范围:该文档仅适用于ovirt-engine3.3(不包含3.3)以下版本的构建。

此文章根据http://www.ovirt.org/Building_oVirt_engine翻译,我已在本机linux环境搭建成功,现将部署步骤描述下来。

一、前提环境

1.基于Linux操作系统,并且安装有OpenJDK1.7及以上版本、Maven3PostgreSQL8.48及更高版本。

2.网络连通。

二、安装构建环境

1.OpenJDK1.7

使用安装包或者yum安装openjdk1.7.0

#> yum install -y java-1.7.0-openjdk-devel

使用“alternatives”命令验证javac是否已经指向已安装的Jdk1.7路径。

$> alternatives --display javac

   javac - status is auto.

   link currently points to /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac

   ...

如果javac没有指向正确的目录,那么可以使用以下命令进行设置。

$> alternatives --set javac /usr/lib/jvm/java-1.7.0-openjdk.x86_64/bin/javac 

2.安装git

使用安装包或者yum安装git

#> yum install -y git

3.安装maven

oVirt engine使用maven的版本为3.0.xmaven 2版本不支持。

使用yum安装方法

#> yum install -y maven

使用下载源码包的方式如下:

$> wget ftp://ftp.mirrorservice.org/sites/ftp.apache.org/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz

$> tar xvf apache-maven-3.0.5-bin.tar.gz

环境变量的配置如下:

$> PATH=$HOME/apache-maven-3.0.5/bin:$PATH

$> export PATH

验证Maven的环境变量已经设置成功

$> mvn -version

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100)

...

Maven 设置

设置 ~/.m2/ directory 库。

$> mkdir ~/.m2

将下列内容拷贝到配置settings文件中。

$> cat > ~/.m2/settings.xml <<"EOT"

<settings xmlns="http://maven.apache.org/POM/4.0.0"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

                              http://maven.apache.org/xsd/settings-1.0.0.xsd">

 

<!--**************************** PROFILES ****************************-->

 

        <activeProfiles>

                        <activeProfile>oVirtEnvSettings</activeProfile>

        </activeProfiles>

 

        <profiles>

                <profile>

                        <id>oVirtEnvSettings</id>

                        <properties>                               

                           <jbossHome>${env.JBOSS_HOME}</jbossHome>

                           <JAVA_HOME>${env.JAVA_HOME}</JAVA_HOME>

                        </properties>

                </profile>

         </profiles>

</settings>

EOT

备注:

一定要配置以上maven配置文件,否则在后续编译中会出错。

请确保jdk的环境变量设置正确。

在环境变量中设置以上需要的环境变量方法为:在用户的家目录中将以下环境变量添加到.bashrc文件中。

 export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64

 export JBOSS_HOME=/usr/share/jboss-as

 export PATH=$HOME/apache-maven-3.0.5/bin:$PATH

三、安装JBoss AS

Zips文件中安装方法

    $> cd /usr/share

    $> wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz

    $> tar -zxvf jboss-as-7.1.1.Final.tar.gz --no-same-owner

    $> ln -s /usr/share/jboss-as-7.1.1.Final /usr/share/jboss-as

    $> # Change the JBOSS_HOME environment variable to the new location

    $> su - -c 'chmod -R 777 /usr/share/jboss-as'

    $> # Change the Jboss home in ~/.m2/settings.xml file to point to the new location

校验是否安装成功

 $> /usr/share/jboss-as/bin/standalone.sh

请确保对于$JBOSS_HOME/standalone/deployments文件夹有写权限,该目录是ovirt-engine的部署目录。

TroubleShooting

1.下面是一些有用的JAVA_OPTS的设置,可以添加到standalone.conf脚本中:

· -Xmx512m - maximum Java heap size of 512m

· -Xdebug - include debugging

2.在运行时添加-b 0.0.0.0用于绑定所有的IP

3.确定8080或者8009端口未被占用。其他可能需要的端口号有:8443/8083/1090/4457

4.JBoss会绑定主机名称,确认该主机名称已经被添加到/etc/hosts目录下。

5.如果部署后的文件并不是最新的代码,可以使用下面的语句移除已经先部署的代码。

  $> cd $JBOSS_HOME/standalone

  $> rm -rf deployments/engine.ear 

  $> rm -rf deployments/engine.ear.deployed 

  $> rm -rf tmp

  $> rm -rf data (should be done only in development environment)    

   $> # Change the JBOSS_HOME environment variable to the new location

   $> su - -c 'chmod -R 777 /usr/share/jboss-as'

   $> # Change the Jboss home in ~/.m2/settings.xml file to point to the new location

四、安装PostgreSQL

安装PostgreSQL步骤将在文档后面详细描述。

五、编译oVirt-engine源码

1. 获取源码

$> git clone git://gerrit.ovirt.org/ovirt-engine

设置环境变量$OVIRT_HOME<your_chosen_source_location>/ovirt-engine 

2. 创建数据库

进入数据库目录

$> cd $OVIRT_HOME/backend/manager/dbscripts

使用下列命令创建ovirt-engine数据库

$> ./create_db_devel.sh -u postgres

Note: In case create_db_devel keeps asking for postgres password, create the following file:

$ echo "*:*:*:postgres:YOUR_POSTGRES_PASSWORD" > ~/.pgpass 

$ chmod 0600 ~/.pgpass

3. 编译

如果只是编译virt-engine-coreREST API部分,使用下列命令

$> cd $OVIRT_HOME

$> mvn clean install

如果要编译web-admin,与user-portal,使用下列命令

 $> cd $OVIRT_HOME

 $> mvn clean install -Pgwt-admin,gwt-user

备注:

1.编译web-admin与user-portal需要花费很长时间。可以通过制定编译语言和编译浏览器去加快编译过程。

2.如果想加快编译速度而忽略单元测试,在使用mvn命令中可以使用-DskipTests=true。

3.如果系统报"java.lang.OutOfMemoryError: PermGen space"错误,可以设置MAVEN_OPTS去设置heap与permanent generation stack大小。 

$> export MAVEN_OPTS="-XX:MaxPermSize=128m"

4. 部署

第一次将程序部署到JBoss服务器的命令是:

$> cd $OVIRT_HOME/ear

$> mvn clean install -Pdep,setup

但是,dep与setup_postgres配置文件之间有一个bug。Setup_postgres配置文件会阻止quartz.jar部署到Jboss服务器上。因此,在该步骤执行完以后,运行:

$> cd $OVIRT_HOME/ear

$> mvn clean install -Pdep

从这以后,因为Postgres已经在运行,将程序部署到服务器上只需要运行:

$> cd $OVIRT_HOME/ear

$> mvn clean install -Pdep

5. 测试

如果JBoss没有运行,可以使用以下命令启动JBoss

#> service jboss-as start (or restart if you already started above for tests)

#> ps ax | grep java

或者使用下面命令

$> /usr/share/jboss-as/bin/standalone.sh

2. 登陆的默认用户名和密码为:用户名,admin@internal,密码是:letmein!。

3. 确保$OVIRT_HOME/backend/manager/conf/engine.conf.defaults 文件存在,并且内容含有下面两行:

ENGINE_USR=username

ENGINE_ETC=/etc/ovirt-engine

然后添加下面命令到你的~/.bashrc文件中

export ENGINE_DEFAULTS=$OVIRT_HOME/backend/manager/conf/engine.conf.defaults

4. 可以使用以下链接进入 RESTful API:

wget -O - --debug --auth-no-challenge --http-user=admin@internal --http-password='letmein!' head='Accept: application/xml' http://<server name>:<port>/api/

默认端口号为8700,或者在浏览器中使用下面链接:

http://<server name>:<port>/api

5. 进入页面链接 

进入Webadmin的网址为:

http://<server name>:<port>/webadmin

进入user-portal的网址为:

http://<server name>:<port>/UserPortal

六、TroubleShooting

1. 安装失败

1.关于主机方面:参考/tmp/vds*文件

2.关于Engine方面:参考/usr/share/jboss-as/standalone/log/engine/engine.log

3.以及你是否创建文档/var/lock/ovirt-engine/.openssl.exclusivelock,并配置有777权限。

2. 系统日志方面

1. oVirt Node

 /var/log/vdsm/vdsm.log

 /var/log/vdsm-reg/vdsm-reg.log

2. (Fedora/Any other distro)

 /tmp/vds* (bootstrap)

 /var/log/vdsm/vdsm.log

 /var/log/vdsm-reg/vdsm-reg.log

3. (oVirt Engine side)

 /usr/share/jboss-as/standalone/log/server.log

 /usr/share/jboss-as/standalone/log/engine/engine.log

4. (spice)

 Run firefox setting SPICEC_LOG_LEVEL

 # SPICEC_LOG_LEVEL=0 firefox

 Afer that, check the file: ~/.spicec/spicec.log

3. Webadmin 错误

如果在执行cleanmvn install’成功,但是在浏览器中访问webadmin,系统报如下错误:

java.lang.NoClassDefFoundError: Could not initialize class org.ovirt.engine.ui.frontend.server.gwt.plugin.PluginDataManager$Holder..

可以使用下面方法解决这个问题:

copy as root: backend/manager/conf/engine.conf.defaults.in to /usr/share/ovirt-engine/conf/engine.conf.defaults (create dirs if needed)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值