林海谐缘

 找回密码
 审核注册
搜索
查看: 4901|回复: 2

拒坑版oVirt-Engine 4.2 编译笔记

[复制链接]
发表于 2019-10-9 21:42:58 | 显示全部楼层 |阅读模式
KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6之后集成在Linux的各个主要发行版本中, KVM可以实现全虚拟化(需要硬件支持如:Intel -VT技术),KVM已成为学术界的主流VMM之一。RedHat 发布了一个开源项目LibVirt, LibVirt提供有一套命令行工具和API,方便用户通过简洁的命令完成对虚拟机的管理。目前多数有图形交互界面的虚拟机管理工具内部都是调用了LibVirt。现在基于LibVirt的KVM管理工具中名气最大的莫过于oVirt 了,它也是RedHat 出品与LibVirt 系出同门自然一些新的技术应用、扩展支持、补丁升级、BUG修复都能第一时间得到更新。oVirt是一个开源项目,国内很多做自主可控VDI 云桌面产品的公司都有拿oVirt 做参照物。
  oVirt 由客户端(oVirt-Node)与管理端(oVirt-Engine)组成, oVirt-Engine 是一个J2EE的WEB 项目,方便用户通过WEB 图形化的交化界面管理资源管理虚拟机。目前针对oVirt 的二次开发第一步都是从编译和修改oVirt-Engine 开始。如果有人足够不要脸完全可以把源码下载改个Title 后编译打包再说是自己开发的VDI拿去挣钱。
  如何用源码编译出一套oVirt-Engine 的介绍很多,其实官方档也介绍的很清楚,但是依然很多人在编译过程中各种踩坑、甚至怀疑人生。说实话前几天想个做编译笔记分享给大家的过程中又踩坑,因此坚定一定要写一个《拒坑版oVirt-Engine 4.2 编译笔记》 ,争取让参照笔记的人可以一次直接编译成功(最新的 oVirt 4.2)。
首先,无论英文是否好(不用就是在线翻译)都强列建议看一下官方英文原版的编译文档,可以了解官方流程,重要的是一些特别强调的地方。
https://www.ovirt.org/develop/developer-guide/engine/engine-development-environment/
我的完整笔记:
第一步:安装操作系统及修改默认语言
安装一个干净的 Centos 7.4 选择默认语言为英语,如果你已经有一个中文版,可以通过修改 /etc/locale.conf 将默认语言改为英文,如果你偏不信坚持非要用中文后面掉坑请自责。
默认语言vim /etc/locale.confLANG="en_US.UTF-8"
第二步:安装后期相关的依赖包、软件包
批量安装第三方软件包
yum install git java-devel maven openssl m2crypto python-psycopg2 python-cheetah python-daemon libxml2-python pyflakes python-pep8 python-docker-py mailcap python-jinja2 python-dateutil gdeploy unzip
这里使用yum install 批量的安装N 个软件包(名字用空格隔开),全部都是后面编译脚本执行中可能会用到的,切记不要漏装。在些异常情况下批量安装时可能个别的包安装失败了,由于滚屏速度快你没看见。到最后执行编译脚本时提示缺少某些组件(软件包)时可以回到这里再补装。
第三步:安装 postgresql 9.6 (新版)
Cenos 7 默认源中所提供的 postgresql( 一种非关系型数据库)版本比较老,oVirt 4.2 对 postgresql 的依赖要求最低是9.4 ,因此我没有在上面批量安装软件包中一并安装。在些需要先更新 postgresql 的官方安装源:
postgresql 安装步骤
第四步:设置openJdk 为首选
其实如果你没有自己安装过 ORACLE JDK( SUN JDK )这一步不是必须的,因为Centos 7 自带的JAVA 就是 openJDK
设置java首选openjdk
alternatives --config java
alternatives --config javac
第五步:安装 ovirt
前面几版都只是准备工作。这里才刚刚开始触及 oVirtr 工作; 但请注意这里也仍仅是前期的相关支持库与依赖、基础环境的准备工作。正戏还是没有开始....
安装源安装 ovirt-engine 相关服务
yum install ovirt-engine-wildfly ovirt-engine-wildfly-overlay
安装 ovirt-host 相关的库
yum install ovirt-host-deploy ovirt-setup-lib ovirt-js-dependencies
第六步:配置 postgresql 9.6 相关设置
正戏上演前的大餐,这一步有几个文件需要手工修改,还需要在命令行配置数据库,操作时要注意看清楚提示,确保每步都执行成功,否则后面又会踩坑。
初始化数据库
/usr/pgsql-9.6/bin/postgresql96-setup initdb
修改 postgresql.conf 文件vim /var/lib/pgsql/9.6/data/pg_hba.conf
host all all 127.0.0.1/32 password
host all all ::1/128 password修改 postgresql.conf 文件vim /var/lib/pgsql/9.6/data/postgresql.conf
max_connections=150
autovacuum_vacuum_scale_factor=0.01
autovacuum_analyze_scale_factor=0.075
autovacuum_max_workers=6
work_mem=8192重启PostgreSQL服务
systemctl start postgresql-9.6
设置PostgreSQL服务开机启动
systemctl enable postgresql-9.6
允许 postgresql-9.6 通过防火墙
firewall-cmd --add-service=postgresql --permanent
firewall-cmd --reload
创建数据库和用户:(以root身份使用以下命令)从root 切换到 postgres
su - postgres
打开 template1 并在其下创建用户:engine 密码:engine ; 这个用户名与密码后面配置时会用到,一定要要设得自己不知道了。
psql -d template1
create user engine password 'engine';
create database engine owner engine template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
输入 q 返回
q
打开 engine 并在其下创建扩展 uuid-ossp ,
psql -d engine
DROP FUNCTION IF EXISTS uuid_generate_v1();
CREATE EXTENSION "uuid-ossp";
输入 q 返回,exit 退出
q
exit
第七步:克隆 ovirt-engine 的源码到本地并编译
正戏开始:
关闭防火墙(这一步其实是可选的)
systemctl stop firewalld.service
git 源码
mkdir -p "<span class="MathJax" id="MathJax-Element-1-Frame" tabindex="0" data-mathml="HOME/git&quot;cd&quot;" role="presentation" style="box-sizing: border-box; display: inline; line-height: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">HOME/git"cd"HOME/git"
git clone git://gerrit.ovirt.org/ovirt-engine
编译(不要用root用户,不要用root 用户这个是一再强调又强调的,可人偏持不信)。执行 make ,ovirt-engine 的编译脚本中有很多参数可供调用,关于这些参数的意义我会另外再写一篇。这里我只用一个参数 PREFIX="$HOME/ovirt-engine"
整个编译过程会比较长,我大约用了一个小时左右必须联网、如果上面的相关支持库、包都已经安装了,这里会比较顺利。
make install-dev PREFIX="$HOME/ovirt-engine"
检查 /usr/lib/firewalld/services/ 下是否有ovirt 的防火墙配置文件,不知道是不是我运气不好还是别的弯子我绕错了路,我从官网同步回来的文件中竟然没有?后来我在官方oVirt-engine 发行版(产品)中找到了这几个文件,我提供下载。如果你也没有下载回来直接放到 /usr/lib/firewalld/services/ 目录下面。
ovirt-imageio.xml
ovirt-provider-ovn.xml
ovirt-storageconsole.xml
ovirt-vmconsole.xml
下载我打包现成的:
第八步:设置ovirt
$HOME/ovirt-engine/bin/engine-setup
如果前面所有的步骤都正确操作了,这个设置过程会很顺利,基本输入YES 后,再一路按回车就可以了(除了验证数据库的用户名密码,就是此前设置 engine )
第九步:启动ovirt-engine服务
启动ovirt-engine服务
$HOME/ovirt-engine/share/ovirt-engine/services/ovirt-engine/ovirt-engine.py start
当服务启动成功后,你可以通过浏览器直接访问管理门户,浏览器必须支持H5
访问ovirt-engine




 楼主| 发表于 2019-10-9 21:51:58 | 显示全部楼层
 楼主| 发表于 2019-10-9 22:24:41 | 显示全部楼层
Hosted Engine之Engine Appliance制作 OVA文件制作
https://blog.csdn.net/liukuan73/article/details/46240879
您需要登录后才可以回帖 登录 | 审核注册

本版积分规则

QQ|手机版|小黑屋|林海谐缘论坛 ( 豫ICP备07015145号 ) |
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论 | 管理员:linker(QQ:80555546) 群:3067918

GMT+8, 2024-7-27 17:05 , Processed in 0.026996 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表