拒坑版oVirt-Engine 4.2 编译笔记

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 如何用源码编译出一套oVirt-Engine 的介绍很多,其实官方档也介绍的很清楚,但是依然很多人在编译过程中各种踩坑、甚至怀疑人生。说实话前几天想个做编译笔记分享给大家的过程中又踩坑,因此坚定一定要写一个《拒坑版oVirt-Engine 4.

  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.conf

LANG="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 安装步骤

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
yum install postgresql96-server postgresql96-contrib

第四步:设置openJdk 为首选
其实如果你没有自己安装过 ORACLE JDK( SUN JDK )这一步不是必须的,因为Centos 7 自带的JAVA 就是 openJDK

设置java首选openjdk

alternatives --config java
alternatives --config javac

第五步:安装 ovirt
前面几版都只是准备工作。这里才刚刚开始触及 oVirtr 工作; 但请注意这里也仍仅是前期的相关支持库与依赖、基础环境的准备工作。正戏还是没有开始....

安装源

yum install http://resources.ovirt.org/pub/yum-repo/ovirt-release42.rpm

安装 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 "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

下载我打包现成的:

https://www.yunforum.net/sfile/ovirt-firewalld.xml.zip

第八步:设置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

http://localhost:8080
https://localhost:8443

目录
打赏
0
0
0
0
4
分享
相关文章
|
4月前
|
Unreal Engine C# 脚本编写浅谈
本文介绍了在 Unreal Engine 中使用 C# 编写脚本的方法,涵盖环境搭建、基础概念、常见问题及代码案例。从安装插件到处理输入事件和加载蓝图,详细讲解了如何在 Unreal Engine 中高效利用 C# 进行开发。
85 3
|
6月前
inno setup打包软件学习
如何使用Inno Setup打包软件,包括打包结果的展示、示例打包脚本的提供、常见错误的解决方法,以及参考资料的链接。文中详细解释了解决“另一个程序正在使用此文件”和“桌面图标无法修改”等问题的方法,以及如何正确设置打包脚本中的文件路径和图标。
164 0
inno setup打包软件学习
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
Genymotion-启动报错Unable to load VirtualBox engine....
Genymotion-启动报错Unable to load VirtualBox engine....
144 0
初学者做APP所需工具安装及ionic-app-scripts has unexpectedly closed问题
初学者做APP所需工具安装及ionic-app-scripts has unexpectedly closed问题
168 0
初学者做APP所需工具安装及ionic-app-scripts has unexpectedly closed问题
linux 安装插件报错:Loaded plugins: fastestmirror
linux 安装插件报错:Loaded plugins: fastestmirror
675 0
linux 安装插件报错:Loaded plugins: fastestmirror
vue cli3.0创项目报错‘This may cause things to work incorrectly. Make sure to use the same version for b’
vue cli3.0创项目报错‘This may cause things to work incorrectly. Make sure to use the same version for b’
vue cli3.0创项目报错‘This may cause things to work incorrectly. Make sure to use the same version for b’

热门文章

最新文章

目录
目录
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等