diff --git a/plugins/boostkit/config.yaml b/plugins/boostkit/config.yaml index 575e390310ed690a2b0e2a5717d478a77e43be7b..23d7d81f5e37ea4fbc0a44fce6e92628ff25f6b0 100644 --- a/plugins/boostkit/config.yaml +++ b/plugins/boostkit/config.yaml @@ -18,8 +18,10 @@ all: host1: # 可在此包含更多主机 vars: - install_list: - - 'ALL' + install_list: 'ALL' # 支持使用列表,或者使用逗号分隔的字符串 + KSL_version: 2.5.0 + hyperscan_branch: v5.4.2.aarch64 + KAE_branch: kae2 vars: # 跳过所有基本检查项 skip_check: false diff --git a/plugins/boostkit/workspace/roles/AccLib/install/tasks/execute_install.yml b/plugins/boostkit/workspace/roles/AccLib/install/tasks/execute_install.yml index d2a4a00299752679c817b56de268687cae24118e..48bff616b512d5388186938a77f57ba21be16bf5 100644 --- a/plugins/boostkit/workspace/roles/AccLib/install/tasks/execute_install.yml +++ b/plugins/boostkit/workspace/roles/AccLib/install/tasks/execute_install.yml @@ -3,6 +3,11 @@ register: timestamp changed_when: false +- name: Show log file path + debug: + msg: "Start executing install script. Use 'tail -f {{ temp_path }}/BoostKit-AccLib/scripts/{{ timestamp.stdout }}.log' to watch process." + tags: install + - name: Execute install script for {{ item }} shell: | python3 install.py --component {{ item }} > {{ temp_path }}/BoostKit-AccLib/scripts/{{ timestamp.stdout }}.log 2>&1 diff --git a/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/install.py b/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/install.py index c6c0abbfddfdf0dd6068f884f83f958200268f3d..535f608cbd4e8903579a57500905ca81b87f07f0 100644 --- a/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/install.py +++ b/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/install.py @@ -130,9 +130,8 @@ class Installer(object): res = Runcmd.sendcmd("cat /etc/os-release") name = re.search("NAME=\"(.+)\"", res).group(1) assert name == "openEuler", "仅支持在openEuler上安装" - os_version = re.search("VERSION=\"(.+)\"", res).group(1).replace(' ', '').replace(')', '').replace('(', '-') pkg_version = ksl_info.get("version") - url = ksl_info.get('url').format(f"{name}-{os_version}", pkg_version) + url = ksl_info.get('url').format(pkg_version) Runcmd.sendcmd(f"wget {url} --no-check-certificate", workspace=f"{self.__ROOT_PATH}/KSL/rpm") Runcmd.sendcmd("rpm -e boostkit-ksl", check=False) @@ -159,7 +158,11 @@ class Installer(object): Runcmd.sendcmd(f"ragel -v") with self.__process("安装boost"): - Runcmd.sendcmd("yum install -y boost boost-devel") + download = info.get("boost") + bag = info.get("boost").split('/')[-1] + + Runcmd.sendcmd(f"wget {download} --no-check-certificate", workspace=f"{self.__ROOT_PATH}/Hyperscan") + Runcmd.sendcmd(f"tar -zxf {bag}", workspace=f"{self.__ROOT_PATH}/Hyperscan") with self.__process("安装pcre"): download = info.get("pcre") @@ -197,7 +200,8 @@ class Installer(object): else: Runcmd.sendcmd(f"git clone {download} -b {branch}", workspace=f"{self.__ROOT_PATH}/Hyperscan") - boost_path = "/usr/include" + boost_path = Runcmd.sendcmd("ls | grep boost | grep -v tar", workspace=f"{self.__ROOT_PATH}/Hyperscan") + boost_path = f"{self.__ROOT_PATH}/Hyperscan/{boost_path}" Runcmd.sendcmd(f"ln -s {boost_path}/boost include/boost", workspace=f"{self.__ROOT_PATH}/Hyperscan/{dir}") pcre_path = Runcmd.sendcmd("ls | grep pcre | grep -v tar", workspace=f"{self.__ROOT_PATH}/Hyperscan") @@ -213,23 +217,6 @@ class Installer(object): Runcmd.sendcmd("mkdir -p build", workspace=f"{self.__ROOT_PATH}/Hyperscan/{dir}") Runcmd.sendcmd("cmake .. && make -j", workspace=f"{self.__ROOT_PATH}/Hyperscan/{dir}/build") - def __install_compress_decompress_tools(self): - Runcmd.sendcmd("rm -rf ZIP", workspace=f"{self.__ROOT_PATH}") - Runcmd.sendcmd("mkdir ZIP", workspace=f"{self.__ROOT_PATH}") - - with self.__process("安装软算测试工具lzbench"): - Runcmd.sendcmd("git clone https://gitee.com/kunpeng_compute/lzbench.git --depth=1", - workspace=f"{self.__ROOT_PATH}/ZIP") - Runcmd.sendcmd("make -j", workspace=f"{self.__ROOT_PATH}/ZIP/lzbench") - - if "KAE" in str(self.__function_dict.keys()) or "QAT" in str(self.__function_dict.keys()): - with self.__process("安装带宽测试工具"): - Runcmd.sendcmd(f"make platform='{self.__platform}'", - workspace=f"{self.__ROOT_PATH}/resources/bandwidth") - Runcmd.sendcmd(f"cp ./bin/bandwidth {self.__ROOT_PATH}/ZIP", - workspace=f"{self.__ROOT_PATH}/resources/bandwidth") - Runcmd.sendcmd("make clean", workspace=f"{self.__ROOT_PATH}/resources/bandwidth") - def __install_kae_dep(self): with self.__process("安装KAE相关依赖"): Runcmd.sendcmd( @@ -304,9 +291,23 @@ class Installer(object): print("已经安装了libgpg-error,不用再安装了") return + info = self.__get_element_text("libgcrypt") + version = info.get("version") + download = info.get('url').format(version) + name = download.split('/')[-1] + + Runcmd.sendcmd("rm -rf ./resources", workspace=f"{self.__ROOT_PATH}") + Runcmd.sendcmd("mkdir resources", workspace=f"{self.__ROOT_PATH}") + Runcmd.sendcmd("cd resources", workspace=f"{self.__ROOT_PATH}") + Runcmd.sendcmd("mkdir libgcrypt", workspace=f"{self.__ROOT_PATH}/resources") + Runcmd.sendcmd("rm -rf libgpg", workspace=f"{self.__ROOT_PATH}") + Runcmd.sendcmd("mkdir libgpg", workspace=f"{self.__ROOT_PATH}") + with self.__process("安装libgcrypt"): - Runcmd.sendcmd(f"unzip libgpg-error-1.51.zip -d {self.__ROOT_PATH}/libgpg", + Runcmd.sendcmd(f"wget {download} --no-check-certificate", + workspace=f"{self.__ROOT_PATH}/resources/libgcrypt") + Runcmd.sendcmd(f"tar -xvf {name} -C {self.__ROOT_PATH}/libgpg", workspace=f"{self.__ROOT_PATH}/resources/libgcrypt") Runcmd.sendcmd("chmod 777 autogen.sh; ./autogen.sh", workspace=f"{self.__ROOT_PATH}/libgpg/libgpg-error-1.51") @@ -317,86 +318,6 @@ class Installer(object): if not self.__chech_env_in_profile("LD_LIBRARY_PATH", "/usr/local/lib"): Runcmd.sendcmd("echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> /etc/profile") - def __install_qat_dep(self): - with self.__process("安装QAT依赖包"): - Runcmd.sendcmd("yum install -y systemd-devel pciutils libudev-devel readline-devel libxml2-devel " - "boost-devel elfutils-libelf-devel python3 libnl3-devel kernel-devel-$(uname -r) " - "gcc gcc-c++ yasm nasm zlib openssl-devel zlib-devel make") - - def __install_qat(self): - self.__install_qat_dep() - - Runcmd.sendcmd(f"rm -rf ./QAT", workspace=f"{self.__ROOT_PATH}") - Runcmd.sendcmd("mkdir -p QAT/qat_driver", workspace=f"{self.__ROOT_PATH}") - - info = self.__get_element_text("QAT") - - with self.__process("安装部署QAT驱动"): - download = info.get("driver") - bag = download.split('/')[-1] - decompresser = "unzip" if "zip" in bag else "tar -xf" - qat_hw_root = f"{self.__ROOT_PATH}/QAT/qat_driver" - - os.putenv("ICP_ROOT", qat_hw_root) - Runcmd.sendcmd(f"wget {download} --no-check-certificate", workspace=f"{self.__ROOT_PATH}/QAT/qat_driver") - Runcmd.sendcmd(f"{decompresser} {bag}", workspace=f"{self.__ROOT_PATH}/QAT/qat_driver") - Runcmd.sendcmd("./configure", workspace=f"{self.__ROOT_PATH}/QAT/qat_driver") - Runcmd.sendcmd("make && make install", workspace=f"{self.__ROOT_PATH}/QAT/qat_driver") - - Runcmd.sendcmd("service qat_service status && service qat_service restart") - - with self.__process("安装部署QAT引擎"): - download = info.get("code_engine") - branch = info.get("branch_engine") - dir = download.split('/')[-1].split('.')[0] - - Runcmd.sendcmd(f"git clone {download} -b {branch} --depth=1", workspace=f"{self.__ROOT_PATH}/QAT") - Runcmd.sendcmd(f"./autogen.sh && ./configure --with-qat_hw-dir={qat_hw_root}", - workspace=f"{self.__ROOT_PATH}/QAT/{dir}") - Runcmd.sendcmd(f"make && make install", workspace=f"{self.__ROOT_PATH}/QAT/{dir}") - - with self.__process("安装部署QATzip"): - download = info.get("code_zip") - branch = info.get("branch_zip") - dir = download.split('/')[-1].split('.')[0] - - Runcmd.sendcmd(f"git clone {download} -b {branch} --depth=1", workspace=f"{self.__ROOT_PATH}/QAT") - Runcmd.sendcmd(f"./autogen.sh && ./configure --with-ICP_ROOT={qat_hw_root}", - workspace=f"{self.__ROOT_PATH}/QAT/{dir}") - Runcmd.sendcmd("make clean && make all install", workspace=f"{self.__ROOT_PATH}/QAT/{dir}") - - res = Runcmd.sendcmd("ls /usr/local/lib") - assert "qatzip.so" in res, "没有找到qatzip动态库" - - self.__install_compress_decompress_tools() - - def __install_hct_dep(self): - with self.__process("安装HCT依赖"): - Runcmd.sendcmd( - "yum install -y numactl libuuid-devel kernel-`uname -r` kernel-devel-`uname -r` python3-unversioned-command") - - def __install_hct(self): - self.__install_hct_dep() - - info = self.__get_element_text("HCT") - Runcmd.sendcmd("rm -rf HCT", workspace=f"{self.__ROOT_PATH}") - Runcmd.sendcmd("mkdir -p HCT/build", workspace=f"{self.__ROOT_PATH}") - - with self.__process("安装HCT"): - download = info.get("devkit") - version = info.get("version") - dir = download.split('/')[-1].split('.')[0] - - Runcmd.sendcmd(f"git clone {download} -n --filter=blob:none", workspace=f"{self.__ROOT_PATH}/HCT") - Runcmd.sendcmd(f"git restore --staged hct/pkg/{version} && git restore hct/pkg/{version}", - workspace=f"{self.__ROOT_PATH}/HCT/{dir}") - Runcmd.sendcmd(f"rpm -ivh --nodeps hct-*.rpm", workspace=f"{self.__ROOT_PATH}/HCT/{dir}/hct/pkg/{version}", - check=False) - Runcmd.sendcmd(f"cp ./Makefile {self.__ROOT_PATH}/HCT/build", - workspace=f"{self.__ROOT_PATH}/HCT/{dir}/hct/pkg/{version}") - Runcmd.sendcmd("make && make install", workspace=f"{self.__ROOT_PATH}/HCT/build") - Runcmd.sendcmd("modprobe hct && /opt/hygon/hct/hct/script/hctconfig start") - def __install_kqmalloc_dep(self): with self.__process("安装kqmalloc编译依赖"): Runcmd.sendcmd("yum install -y autoconf gcc gcc-c++") @@ -420,12 +341,6 @@ class Installer(object): if "Kunpeng" in res: self.__function_dict["KAE"] = self.__install_kae self.__function_dict["KQMalloc"] = self.__install_kqmalloc - elif "INTEL" in res: - self.__function_dict["QAT"] = self.__install_qat - elif "Hygon" in res: - self.__function_dict["HCT"] = self.__install_hct - else: - self.__function_dict["SOFT_COMPRESS"] = self.__install_compress_decompress_tools def get_support(self): return ' '.join(self.__function_dict.keys()) diff --git a/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/version.xml b/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/version.xml index 7af95043333031ea421c920164c894de62d1fd6c..5ae6b38dd746b5e48b5a093de443099db8773aca 100644 --- a/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/version.xml +++ b/plugins/boostkit/workspace/roles/AccLib/prepare/files/BoostKit-AccLib/scripts/version.xml @@ -1,35 +1,22 @@ - 2.4.0 - https://repo.oepkgs.net/openEuler/rpm/{}/extras/aarch64/Packages/b/boostkit-ksl-{}-1.aarch64.rpm - - 2.5.0 - https://repo.oepkgs.net/openEuler/rpm/{}/extras/aarch64/Packages/b/boostkit-hmpp-{}-1.aarch64.rpm - + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/boostkit-ksl-{}-1.aarch64.rpm + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/ragel-6.10.tar.gz - https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/boost_1_87_0.tar.gz https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/pcre-8.43.tar.gz https://gitee.com/kunpengcompute/hyperscan.git v5.4.2.aarch64 - https://github.com/intel/hyperscan.git - v5.4.2 https://gitee.com/kunpengcompute/KAE.git kae2 - - https://downloadmirror.intel.com/843052/QAT20.L.1.2.30-00078.tar.gz - https://github.com/intel/QAT_Engine.git - v1.8.1 - https://github.com/intel/QATzip.git - v1.3.0 - - - https://gitee.com/anolis/hygon-devkit.git - hct_2.1.0.20241030_release - + + 1.51 + https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-{}.tar.gz + \ No newline at end of file diff --git a/plugins/boostkit/workspace/roles/AccLib/prepare/tasks/main.yml b/plugins/boostkit/workspace/roles/AccLib/prepare/tasks/main.yml index 9597ff15b4c3f181da27b2f2c480b274c8dedd20..046bad7e248efd7deccacb447edde1bc8e9e823e 100644 --- a/plugins/boostkit/workspace/roles/AccLib/prepare/tasks/main.yml +++ b/plugins/boostkit/workspace/roles/AccLib/prepare/tasks/main.yml @@ -4,6 +4,12 @@ state: present tags: dependency +- name: "[Cleanup] Remove temporary files and directories" + file: + path: "{{ temp_path }}/BoostKit-AccLib" + state: absent + tags: cleanup + - name: "[File] Ensure destination directory exists" file: path: "{{ temp_path }}" @@ -15,3 +21,9 @@ src: "BoostKit-AccLib" dest: "{{ temp_path }}" tags: file_transfer + +- name: "[File] Copy version.xml to remote host" + template: + src: "version.xml.j2" + dest: "{{ temp_path }}/BoostKit-AccLib/scripts/version.xml" + tags: file_transfer diff --git a/plugins/boostkit/workspace/roles/AccLib/prepare/templates/version.xml.j2 b/plugins/boostkit/workspace/roles/AccLib/prepare/templates/version.xml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..ea35c443cc4836e89c6a6fc98128b671a6b568b2 --- /dev/null +++ b/plugins/boostkit/workspace/roles/AccLib/prepare/templates/version.xml.j2 @@ -0,0 +1,22 @@ + + + + {{ KSL_version }} + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/boostkit-ksl-{}-1.aarch64.rpm + + + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/ragel-6.10.tar.gz + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/boost_1_87_0.tar.gz + https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/files/pcre-8.43.tar.gz + https://gitee.com/kunpengcompute/hyperscan.git + {{ hyperscan_branch }} + + + https://gitee.com/kunpengcompute/KAE.git + {{ KAE_branch }} + + + 1.51 + https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-{}.tar.gz + + \ No newline at end of file