批量部署工具

DevKit Pipeline是批量部署工具,用户可以根据需要部署门禁扫描、编译、测试、病毒扫描相关的工具到工作节点。

若想一次性批量部署所有的工具,可通过DevKit Pipeline工具在Master节点批量部署工具到工作节点上。

操作步骤

  1. 以root用户登录Master节点,请参见表3获取devkit-pipeline-v1.0.3.tar.gz软件包,并上传到鲲鹏服务器,以安装目录“/home/pipeline”为例。
  2. 解压软件包。

    cd /home/pipeline
    tar -zxvf devkit-pipeline-v1.0.3.tar.gz
    解压后“linux”文件夹下有以下文件。
    • deploy_tool:批量部署工具
    • download_tool:一键下载工具
    • machine.yaml:配置文件
    • script_generator:生成Jenkins、GitLab流水线运行模板

    工具详细介绍请参见download_tooldeploy_toolscript_generator

  3. 进入“linux”文件夹,编辑machine.yaml文件,在machine.yaml文件中配置各组件安装所在的工作节点IP地址以及其他信息。

    cd devkit-pipeline-v1.0.3/linux/
    vim machine.yaml

    源码仓提供的machine.yaml配置文件模板为:

    user: root
    pkey: /root/.ssh/id_rsa
    scanner:
      - 192.168.0.1
      - 192.168.0.2
      - 192.168.0.3
    c_builder_gcc:
      - 192.168.0.2
    c_builder_bisheng_compiler:
      - 192.168.0.2
    java_builder_jdk8:
      - 192.168.0.1
    java_builder_jdk17:
      - 192.168.0.1
    compatibility:
      - 192.168.0.1
    tester:
      - 192.168.0.3
    devkit:
      - 192.168.0.3
    clamav:
      - 192.168.0.3 
    • user:当前节点连接其他节点配置免密的用户名。
    • pkey:配置免密所用公钥对应的私钥路径。
    • scanner:扫描机。
    • c_builder_gcc:GCC for openEuler构建机。
    • c_builder_bisheng_compiler:毕昇编译器构建机。
    • java_builder_jdk8:毕昇JDK8构建机。
    • java_builder_jdk17:毕昇JDK17构建机。

      请用户自行选择部署JDK,不建议在同一环境下同时部署BiSheng JDK8和BiSheng JDK17,若在同一环境下部署,只有一个JDK生效。

    • compatibility:兼容性测试执行机。
    • devkit:DevKit部署机。
    • clamav:病毒扫描执行机。
    • tester:Java测试执行机。

    scanner、java_builder_jdk8、java_builder_jdk17、c_builder_gcc、c_builder_bisheng_compiler、compatibility、devkit、clamav、tester均为角色名称,需按照模板格式,以yaml列表的形式输入对应的IP地址。请用户根据实际部署角色的服务器IP地址填写,不需要安装的组件可以删除对应角色,安装所有角色的服务器可以为同一台服务器。

  4. 配置Master节点到各工作节点的免密,不同工作节点和用户均需要执行当前操作。

    1. 使用RSA协议生成公私钥对。
      ssh-keygen -t rsa

      生成公私钥对命令参考:ssh-keygen [-b bits] [-t rsa] [-f output_keyfile]

      • -b:指定bytes长度。
      • -t:指定生成的密钥类型。
      • -f:指定公私钥文件名。

      执行命令后,回显信息会提示用户输入生成公私钥对所用密码,若输入密码,则后续批量部署工具在运行时需要用户手动输入密码,或在machine.yaml配置文件中新增一行password参数并填入公私钥对所用密码。

    2. 配置Master节点免密连接各工作节点。
      ssh-copy-id -i /root/.ssh/id_rsa.pub USER@REMOTE_HOST
      • -i:指定用户配置免密的公钥路径。
      • USER:工作节点用户名。
      • REMOTE_HOST:工作节点IP地址。

      执行命令后提示输入工作节点用户密码,输入密码后公钥被复制到工作节点的authorized_keys文件中,实现免密登录工作节点。若上述IP地址中出现本机IP地址,或想要本机到本机的安装部署,则需要配置本机到本机的免密登录。

  5. (可选)以root用户登录工作节点,在工作节点上配置sudo权限与sudo免密。若使用普通用户安装Compatibility Testing的执行机、DevKit CLI的扫描机、ClamAV的病毒扫描执行机或者DevKit Web的DevKit部署机上需要配置,其他情况请跳过。

    执行visudo命令修改“/etc/sudoers”文件。

    visudo -f /etc/sudoers
    1. 普通用户(USER)配置sudo权限,需在“/etc/sudoers”文件中对比“root ALL=(ALL) ALL”新增一行。
      root    ALL=(ALL)       ALL 
      USER    ALL=(ALL)       NOPASSWD: ALL
    2. 普通用户(USER)配置sudo免密,需在“ /etc/sudoers”文件中对比 “# %wheel ALL=(ALL) NOPASSWD: ALL”新增一行。
      # %wheel        ALL=(ALL)       NOPASSWD: ALL 
      USER            ALL=(ALL)       NOPASSWD: ALL

  6. (可选)以root用户登录安装A-FOT工具的工作节点,使用yum安装“perf”命令,A-FOT工具为c_builder_gcc角色。

    yum install perf -y

    无网络情况下请配置本地镜像源后,再执行yum install perf -y安装“perf”命令。

    配置本地镜像源请参见配置操作系统yum/apt/zypper源

  7. (可选)下载组件。

    用户服务器无网络情况下,可先行下载组件再通过deploy_tool批量部署工具部署各组件。若用户服务器有网络,请跳过本步骤,直接通过deploy_tool批量部署工具来安装部署各组件。

    以下方式二选一,请用户根据实际情况选择Linux版本下载工具或者Windows版本下载工具。

    • Linux版本:采用download_tool工具下载

      download_tool是指一键下载工具。当批量部署工具所在节点网络不通时,可以使用download_tool在有网络环境的机器上先行下载所需的组件安装包,供用户上传至批量部署工具所在节点,供批量部署工具在默认路径加载使用。

      • 通过download_tool工具,按照3中machine.yaml配置文件中的有效角色下载各组件。
        ./download_tool -f ./machine.yaml

        下载完成后,将下载的所有组件包放入“devkitdependencies”文件夹中,上传到批量部署工具所在节点。

      • 通过一键下载工具下载iso镜像。
        ./download_tool -iso auto

        download_tool命令参数说明:

        • -f:指定yaml文件路径。
        • -iso:指定需要下载的iso版本,输入“auto”将自动检测操作系统版本,并下载对应版本的iso文件。
    • Windows版本:采用download_tool-for-windows.exe工具下载
      1. 请参见表3获取download_tool-for-windows.exe。
      2. 在download_tool-for-windows.exe所在路径下创建machine.yaml文件,填写同3
      3. 在download_tool-for-windows.exe所在路径下打开cmd窗口,下载组件包,工具会自动将下载的组件包打包成devkitdependencies.tar.gz文件。
        download_tool-for-windows.exe
      4. 将devkitdependencies.tar.gz上传至“linux”文件夹。

  8. 部署组件。

    deploy_tool工具可按machine.yaml配置文件中的有效角色部署GCC for openEuler、BiSheng Compiler、BiSheng JDK8、BiSheng JDK17、Compatibility Testing、DevKit Web、DevKit CLI、ClamAV和DevKit Tester组件。
    ./deploy_tool -f ./machine.yaml
    • -f:指定yaml文件路径。
    • 批量部署工具将标准输出作为日志输出地址,没有生成单独的日志文件。
    • 使用批量部署工具,需要提前在目标节点安装tar命令用于安装组件。
    • 不建议在同一环境下同时部署BiSheng JDK 8和BiSheng JDK 17,若在同一环境下部署,只有一个JDK生效。
    • 使用兼容性测试工具之前请参见兼容性测试工具命令参考配置参数。

  9. DevKit Tester组件使用依赖于Apache Jmeter工具,以及需要确认采集的Java程序所在工作节点存在jcmd命令。请参见安装Apache Jmeter工具确定需要采集的Java程序所在机器存在jcmd命令进行操作。
  10. 部署完成后,在各工作节点执行su命令重新加载环境变量,其中USER为安装组件的用户。

    su - USER

  11. (可选)无感切换依赖。

    若用户的某些应用或命令希望使用批量部署工具安装的BiSheng Compiler的相关环境变量,可以执行命令切换依赖。

    source ${HOME}/.local/wrap-bin/devkit_NonInvasiveSwitching.sh

    通过批量部署工具安装毕昇编译器时会自动在“~/.local”文件夹下配置“/wrap-bin/devkit_NonInvasiveSwitching.sh”等脚本文件。

    可以执行gcc -v命令查看切换前后的环境信息,能看到查询的信息由“gcc”变为“clang”

安装后验证

安装完成后,可在各安装组件的工作节点下查看部署结果,请用户根据实际部署组件查看。

打开bashrc文件,通过查看对应的环境变量来识别工具环境是否部署成功。

cat ~/.bashrc