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