编译oVirt相关软件包

  • 以下编译的软件包,都汇总至“/root/ovirt_rpm”目录,此目录可直接作为本地源使用。
  • 因编译耗时较久,可以在一次编译完成后,将“/root/ovirt_rpm”目录备份,且在后续的部署中跳过编译,直接使用。
  • 部分包的编译依赖为编译过程中实时更新在本地源中。如果发现安装依赖失败,提示找不到包,可以执行以下命令更新yum缓存后,重新安装。
    1
    yum makecache
    
  1. 取消环境变量,加速RPM包编译。

    1
    unset GOMP_CPU_AFFINITY
    

  2. 创建Maven缓存目录。

    1
    mkdir ~/.m2
    

  3. 添加Maven源。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    echo "
    <?xmlversion=\"1.0\"?>
    <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\">
      <mirrors>
        <mirror>
          <id>huaweicloud</id>
          <name>huawei cloud repo</name>
          <url>https://mirrors.huaweicloud.com/repository/maven/</url>
          <mirrorOf>*</mirrorOf>
        </mirror>
      </mirrors>
    </settings>" > /root/.m2/settings.xml
    

    如外网访问需要代理,则在本步骤所修改的内容中,<settings>标签下,添加<proxies>标签,内容如下:

    <proxies>
        <proxy>
          <active>true</active>
          <protocol>http</protocol>
          <username>代理用户名</username>
          <password>代理密码</password>
          <host>代理地址</host>
          <port>代理端口</port>
        </proxy>
        <proxy>
          <active>true</active>
          <protocol>https</protocol>
          <username>代理用户名</username>
          <password>代理密码</password>
          <host>代理地址</host>
          <port>代理端口</port>
        </proxy>
      </proxies>

  4. 创建缓存目录。

    1
    2
    3
    4
    mkdir /root/ovirt_build
    mkdir /root/ovirt_rpm
    mkdir -p /root/rpmbuild/SOURCES
    cd /root/ovirt_build
    

  5. 安装基础软件。

    1
    yum install tar git vim rpm-build createrepo_c java-11-openjdk -y
    

  6. 编译ovirt-jboss-modules-maven-plugin。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    # 下载源码
    git clone https://gitee.com/src-openeuler/ovirt-jboss-modules-maven-plugin.git -b openEuler-20.03-LTS-SP1
    # 将源码拷贝到构建目录
    cp ovirt-jboss-modules-maven-plugin/* ~/rpmbuild/SOURCES
    # 安装构建所需依赖
    yum-builddep -y ovirt-jboss-modules-maven-plugin/ovirt-jboss-modules-maven-plugin.spec
    # 构建rpm包
    rpmbuild -bb ovirt-jboss-modules-maven-plugin/ovirt-jboss-modules-maven-plugin.spec
    # 将产物复制到缓存目录
    cp /root/rpmbuild/RPMS/noarch/ovirt-jboss-modules-maven-plugin-2.0.2-*.noarch.rpm ../ovirt_rpm
    # 清理构建残留
    rm -f ~/rpmbuild/SOURCES/*
    # 刷新本地源内容
    createrepo_c ../ovirt_rpm
    yum-config-manager --enable ovirt-local
    yum makecache
    

  7. 编译ovirt-engine。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    git clone https://gitee.com/src-openeuler/ovirt-engine.git -b openEuler-20.03-LTS-SP1
    cp ovirt-engine/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine/ovirt-engine.spec
    rpmbuild -bb ovirt-engine/ovirt-engine.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-vmconsole-proxy-helper-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-health-check-bundler-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-websocket-proxy-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-tools-backup-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-imageio-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-vmconsole-proxy-helper-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/python3-ovirt-engine-lib-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-websocket-proxy-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-cinderlib-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-base-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-ovirt-engine-common-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-tools-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-ovirt-engine-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dbscripts-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-restapi-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-backend-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-webadmin-portal-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  8. 编译ovirt-ansible-collection。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-ansible-collection.git
    cp ovirt-ansible-collection/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-ansible-collection/ovirt-ansible-collection.spec
    rpmbuild -bb ovirt-ansible-collection/ovirt-ansible-collection.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-ansible-collection-1.5.3-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  9. 编译ovirt-dependencies。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-dependencies.git
    cp ovirt-dependencies/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-dependencies/ovirt-dependencies.spec
    rpmbuild -bb ovirt-dependencies/ovirt-dependencies.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-dependencies-4.4.2-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  10. 编译ovirt-engine-nodejs-modules。

    1
    2
    3
    4
    5
    6
    7
    8
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-nodejs-modules.git
    cp ovirt-engine-nodejs-modules/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-nodejs-modules/ovirt-engine-nodejs-modules.spec
    rpmbuild -bb ovirt-engine-nodejs-modules/ovirt-engine-nodejs-modules.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-nodejs-modules-2.0.53-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    yum makecache
    

  11. 编译ovirt-engine-ui-extensions。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-ui-extensions.git
    cp ovirt-engine-ui-extensions/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-ui-extensions/ovirt-engine-ui-extensions.spec
    rpmbuild -bb ovirt-engine-ui-extensions/ovirt-engine-ui-extensions.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-ui-extensions-1.2.6-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  12. 编译ovirt-engine-wildfly。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-wildfly.git
    cp ovirt-engine-wildfly/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-wildfly/ovirt-engine-wildfly.spec
    rpmbuild -bb ovirt-engine-wildfly/ovirt-engine-wildfly.spec
    cp /root/rpmbuild/RPMS/aarch64/ovirt-engine-wildfly-19.1.0-*.aarch64.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  13. 编译ovirt-engine-wildfly-overlay。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-wildfly-overlay.git
    cp ovirt-engine-wildfly-overlay/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-wildfly-overlay/ovirt-engine-wildfly-overlay.spec
    rpmbuild -bb ovirt-engine-wildfly-overlay/ovirt-engine-wildfly-overlay.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-wildfly-overlay-19.1.0-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  14. 编译ovirt-imageio。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-imageio.git
    cp ovirt-imageio/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-imageio/ovirt-imageio.spec
    rpmbuild -bb ovirt-imageio/ovirt-imageio.spec
    cp /root/rpmbuild/RPMS/aarch64/ovirt-imageio-daemon-2.1.1-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/ovirt-imageio-client-2.1.1-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/ovirt-imageio-common-2.1.1-*.aarch64.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  15. 编译ovirt-provider-ovn。

    1
    2
    3
    4
    5
    6
    7
    8
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-provider-ovn.git
    cp ovirt-provider-ovn/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-provider-ovn/ovirt-provider-ovn.spec
    rpmbuild -bb ovirt-provider-ovn/ovirt-provider-ovn.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-provider-ovn-driver-1.2.29-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-provider-ovn-1.2.29-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  16. 编译ovirt-cockpit-sso。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-cockpit-sso.git
    cp ovirt-cockpit-sso/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-cockpit-sso/ovirt-cockpit-sso.spec
    rpmbuild -bb ovirt-cockpit-sso/ovirt-cockpit-sso.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-cockpit-sso-0.1.4-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  17. 编译ovirt-engine-metrics。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-metrics.git
    cp ovirt-engine-metrics/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-metrics/ovirt-engine-metrics.spec
    rpmbuild -bb ovirt-engine-metrics/ovirt-engine-metrics.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-metrics-1.3.6.4-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  18. 编译ovirt-engine-dwh。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-dwh.git
    cp ovirt-engine-dwh/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-dwh/ovirt-engine-dwh.spec
    rpmbuild -bb ovirt-engine-dwh/ovirt-engine-dwh.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dwh-grafana-integration-setup-4.4.4.1-*.noarch.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dwh-setup-4.4.4.1-*.noarch.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dwh-4.4.4.1-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  19. 编译collectd。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/collectd.git
    cp collectd/* ~/rpmbuild/SOURCES
    yum-builddep -y collectd/collectd.spec
    rpmbuild -bb collectd/collectd.spec --nocheck
    cp /root/rpmbuild/RPMS/aarch64/collectd-*.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/aarch64/libcollectdclient-*.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/aarch64/perl-Collectd-*.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  20. 编译ovirt-host。

    1
    2
    3
    4
    5
    6
    7
    8
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-host.git
    cp ovirt-host/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-host/ovirt-host.spec
    rpmbuild -bb ovirt-host/ovirt-host.spec
    cp /root/rpmbuild/RPMS/aarch64/ovirt-host-dependencies-4.4.1-*.aarch64.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/aarch64/ovirt-host-4.4.1-*.aarch64.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  21. 编译cockpit-ovirt。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/cockpit-ovirt.git
    cp cockpit-ovirt/* ~/rpmbuild/SOURCES
    yum-builddep -y cockpit-ovirt/cockpit-ovirt.spec
    rpmbuild -bb cockpit-ovirt/cockpit-ovirt.spec
    cp /root/rpmbuild/RPMS/noarch/cockpit-ovirt-dashboard-0.15.0-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  22. 编译FreeIPA。

    如果编译发生错误,请参考编译FreeIPA失败的解决方法排除故障。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/freeipa.git
    cp freeipa/* ~/rpmbuild/SOURCES
    yum-builddep -y freeipa/freeipa.spec --nobest
    rpmbuild -bb freeipa/freeipa.spec
    cp /root/rpmbuild/RPMS/noarch/freeipa-python-compat-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/freeipa-client-samba-4.9.3-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/freeipa-client-common-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/freeipa-client-epn-4.9.3-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/freeipa-client-4.9.3-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/python3-ipalib-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/python3-ipaclient-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/freeipa-common-4.9.3-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  23. 编译ovirt-hosted-engine-setup。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-hosted-engine-setup.git
    cp ovirt-hosted-engine-setup/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-hosted-engine-setup/ovirt-hosted-engine-setup.spec
    rpmbuild -bb ovirt-hosted-engine-setup/ovirt-hosted-engine-setup.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-hosted-engine-setup-2.5.0-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  24. 编译certmonger。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/certmonger.git
    cp certmonger/* ~/rpmbuild/SOURCES
    yum-builddep -y certmonger/certmonger.spec
    rpmbuild -bb certmonger/certmonger.spec --nocheck
    cp /root/rpmbuild/RPMS/aarch64/certmonger-0.79.11-*.aarch64.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  25. 编译vdsm-jsonrpc-java。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/vdsm-jsonrpc-java.git
    cp vdsm-jsonrpc-java/* ~/rpmbuild/SOURCES
    yum-builddep -y vdsm-jsonrpc-java/vdsm-jsonrpc-java.spec
    rpmbuild -bb vdsm-jsonrpc-java/vdsm-jsonrpc-java.spec
    cp /root/rpmbuild/RPMS/noarch/vdsm-jsonrpc-java-1.5.5-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  26. 编译vdsm。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/vdsm.git
    cp vdsm/* ~/rpmbuild/SOURCES
    yum-builddep -y vdsm/vdsm.spec
    rpmbuild -bb vdsm/vdsm.spec
    cp -f /root/rpmbuild/RPMS/noarch/vdsm-*.rpm ../ovirt_rpm
    cp -f /root/rpmbuild/RPMS/aarch64/vdsm-*.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    yum makecache
    

  27. 编译ovirt-hosted-engine-ha。

    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-hosted-engine-ha.git
    cp ovirt-hosted-engine-ha/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-hosted-engine-ha/ovirt-hosted-engine-ha.spec
    rpmbuild -bb ovirt-hosted-engine-ha/ovirt-hosted-engine-ha.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-hosted-engine-ha-2.4.5-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    

  28. 拷贝oVirt软件包到所有部署ovirt的节点。

    拷贝/root/ovirt_rpm目录到所有部署ovirt的节点的/root目录下。

    在所有部署ovirt的节点执行如下操作,清理缓存并重新创建缓存。
    1
    2
    yum-config-manager --enable ovirt-local
    yum clean all && yum makecache