Install the following system components:
jdk-8 / openjdk-8-jdk / icedtea-8
mime-types or mailcap
unzip
openssl
postgresql-server postgresql
python-m2crypto / m2crypto
python-psycopg2 / psycopg
python-jinja2 / Jinja2
libxml2-python / libxml2[python]
python-daemon
otopi >= 1.1.0
ovirt-host-deploy >= 1.1.0
ovirt-setup-lib
maven-3 (optional)
pyflakes (optional)
python-pep8 / pep8 (optional)
patternfly1 (optional)
python-docker-py (optional)
Maven-3 is required, download and extract if not installed using distribution package management, and add to PATH.
WildFly 10 is required along with ovirt-engine-wildfly-overlay. Preferred way is to install following packages:
ovirt-engine-wildfly
ovirt-engine-wildfly-overlay
Both packages can be installed from ovirt-master-snapshot-static repository:
[ovirt-master-snapshot-static] name=Latest oVirt master additional nightly snapshot baseurl=http://resources.ovirt.org/pub/ovirt-master-snapshot-static/rpm/@DIST@$releasever/ enabled=1 skip_if_unavailable=1 gpgcheck=0
Please replace @DIST@
with fc
for Fedora or el
for Centos/RHEL.
Build locales requires at least 10240 file descriptors, create the following file, replace <user> with user that is used for building, and logout/login:
<user> hard nofile 10240
#<user> soft nofile 10240 # optional, to apply automatically
If soft limit was not set, before building, apply new limit using:
$ ulimit -n 10240
Configure PostgreSQL to accept user and password:
Locate pg_hba.conf
within your distribution, common locations are:
/var/lib/pgsql/data/pg_hba.conf
/etc/postgresql-*/pg_hba.conf
/etc/postgresql/*/main/pg_hba.conf
Within pg_hba.conf
set method to password
for 127.0.0.1/32
and
::1/128
.
Restart the PostgreSQL service.
Create database for ovirt-engine, usually the following sequence should
work to create a user named engine
that owns database named engine
:
# su - postgres -c "psql -d template1" template1=# create user engine password 'engine'; template1=# drop database engine; template1=# create database engine owner engine template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
Development environment is supported only under non-root account. Do not run this sequence as root.
Each instance of application must be installed at different PREFIX
and
use its own database. Throughout this document application is installed
using PREFIX="${PREFIX}"
and engine database and user, these should be
changed if a new instance is required. Do not mix different versions of
product with same PREFIX/database
.
From this point on, the "${PREFIX}"
will be used to mark the prefix
in which you selected to install the development environment.
To build and install ovirt-engine at your home folder under ovirt-engine directory execute the folllowing command:
$ make clean install-dev PREFIX="${PREFIX}"
Note
|
${PREFIX} should be replaced with the location in which you
intend to install the environment.
|
Build project.
Clean project.
Build project for development.
Install a development environment at PREFIX.
Create source tarball out of git repository.
Force execution of maven.
The following Makefile
environment variables are available for build
customization:
Installation root directory. Default is /usr/local
.
The loaction of the PatternFly installation. Default
is /usr/share/patternfly1/resources
.
Build GWT. Default is 1
.
Build user protal if GWT is enabled. Default is
1
.
Build web admin if GWT is enabled. Default is
1
.
Build GWT applications for all supported
browsers. Default is 0
.
Build GWT applications for all supported locales.
default is 0
.
Add extra development flags. Usually this should not be
used directly, as the all-dev sets this. Default is 0
.
Perform unit tests during build. Default is 0
.
Maven JVM options. Can be defined as environment variable. Default is empty.
GWT compiler and dev mode JVM options. Can be defined as environment variable. default is empty.
Note
|
Note that BUILD_JAVA_OPTS_GWT overrides BUILD_JAVA_OPTS_MAVEN
when building GWT applications (BUILD_JAVA_OPTS_MAVEN settings still
apply, unless overridden).
|
Build draft GWT applications without
optimizations, this is useful when profiling compiled application in web
browser. Default value is 0
.
Following changes are applied for draft builds:
Prevent code and CSS obfuscation.
Reduce the level of code optimizations.
Allows debugging GWT applications via
Super Dev Mode. Default value is 0
.
First, build Engine with DEV_BUILD_GWT_SUPER_DEV_MODE=1
. Then, start
GWT code server as following:
$ make gwt-debug DEBUG_MODULE=<module> DEV_BUILD_GWT_SUPER_DEV_MODE=1
In browser, open http://127.0.0.1:9876 and bookmark "Dev Mode On".
Visit GWT application URL (without gwt.codesvr
), click "Dev Mode On",
then click "Compile" to reflect any UI code changes in browser.
Any maven build flags requires for building.
For example, if your machine is low on memory, limit maximum simultaneous GWT permutation worker threads:
DEV_EXTRA_BUILD_FLAGS="-Dgwt.compiler.localWorkers=1"
By default, GWT applications are
built for Firefox only. To build for additional browsers, provide
comma-separated list of user agents, see
frontend/webadmin/modules/pom.xml
for full list.
For example, to build for Firefox and Chrome:
DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS="-Dgwt.userAgent=gecko1_8,safari"
To build for all supported browsers, use BUILD_ALL_USER_AGENTS=1
.
Disable if only packaging components were modified.
Default is 1
.
Change location of WildFly overlay modules.
If you want to disable WildFly overlay configuration completely, please
set to empty string. Default is
/usr/share/ovirt-engine-wildfly-overlay/modules
.
If you want to use different WildFly/EAP installation, specify it at
--jboss-home=
parameter of setup.
Select a specific Java home.
Set to non zero to bypass Java compatibility check.
If there are no significant changes, such as file structure or database
schema, there is no need to run the setup again, make install-dev
<args>
will overwrite files as required, run engine-setup
to refresh
database schema.
Do remember to restart the engine service.
If there is a significant change, safest path is to stop service, remove
${PREFIX}
directory, build and setup.
The ${PREFIX}/bin/engine-cleanup
tool is also available to cleanup the
environment, it is useful for application changes, less for packaging
changes.
Most utilities and services are operational, including PKI, host deploy.
To start/stop the engine service use:
$ "${PREFIX}/share/ovirt-engine/services/ovirt-engine/ovirt-engine.py" start
While the service is running, this command will not exit. Press <Ctrl>-C to stop service.
Access using HTTP or HTTPS:
Debug port is available at 127.0.0.1:8787
.
ovirt-engine service supports jmx as management interface. Actually, this is the standard jboss jmx interface, while authentication can be done using any engine user with SuperUser role. Access is permitted only from the local host.
Access JMX shell using provide OPTIONAL_COMMAND for non interactive usage:
$ "${JBOSS_HOME}/bin/jboss-cli.sh" \ --connect \ --timeout=30000 \ --controller=localhost:8706 \ --user=admin@internal \ --commands="OPTIONAL_COMMA_SEPARATED_COMMANDS"
Useful commands:
/subsystem=logging/logger=org.ovirt.engine.core.bll:write-attribute(name=level,value=DEBUG)
/subsystem=logging/logger=org.ovirt.engine:add
ls /subsystem=datasources/data-source=ENGINEDataSource/statistics=jdbc/
ls /core-service=platform-mbean/type=threading/
By default JMX access is available only to localhost, to open JMX to
world, add ${PREFIX}/etc/ovirt-engine/engine.conf.d/20-setup-jmx-debug.conf
with:
ENGINE_JMX_INTERFACE=public
$ make install-dev PREFIX="${PREFIX}" $ make gwt-debug DEBUG_MODULE=<module>
While <module>
is webadmin
or userportal-gwtp
.
Debug port is 8000, detailed instructions for GWT debugging are here.
GWT debug URLs, provided components running on same machine:
Note that gwt.codesvr
parameter does not apply when using Super Dev Mode.
Create empty database for DAO tests refer to Database creation.
Provided user is engine
, password is engine
and database is
engine_dao_tests
.
$ PGPASSWORD=engine \ ./packaging/dbscripts/schema.sh \ -c apply -u engine -d engine_dao_tests
Run build as:
$ make maven BUILD_GWT=0 BUILD_UT=1 EXTRA_BUILD_FLAGS="-P enable-dao-tests \ -D engine.db.username=engine \ -D engine.db.password=engine \ -D engine.db.url=jdbc:postgresql://localhost/engine_dao_tests"
After the environment is setup and installed, some adjustments are required.
Copy vmconsole-host
configuration:
$ sudo cp -p "${PREFIX}/share/ovirt-engine/conf/ovirt-vmconsole-proxy.conf \ /etc/ovirt-vmconsole/ovirt-vmconsole-proxy/conf.d/50-ovirt-vmconsole-proxy.conf
If selinux is enabled on your machine, set type on vmconsole helper using:
$ sudo chcon --type=bin_t "${PREFIX}/libexec/ovirt-vmconsole-proxy-helper/ovirt-vmconsole-list.py"
$ make dist $ rpmbuild -ts @tarball@ # yum-builddep @srpm@ # rpmbuild -tb @tarball@
The following spec file variables are available for package customization:
Quick build, best for syntax checks. Default is 0
.
Build minimal Firefox only package. Default is
0
.
Build GWT components. Default is 1
.
Build GWT components for all supported
browsers. Default is 1
.
Build GWT components for all supported locales.
Default is 1
.
Example:
# rpmbuild -D"ovirt_build_minimal 1" -tb @tarball@
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。