帮助生成CVMFS的子集
项目描述
SubCVMFS-builder
目的
SubCVMFS-builder
旨在帮助科学界构建包含执行感兴趣应用程序所需的最小要求的CVMFS子集,并将其部署在远程计算基础设施上。此工具主要用于没有外网连接的超计算机。
安装
- 开始之前,您需要在机器上安装
singularity
、CVMFS
和CVMFS-shrinkwrap
。
git clone https://gitlab.cern.ch/alboyer/subcvmfs-builder.git
cd subcvmfs-builder
pip install . --user
用法
- 获取帮助
subcvmfs --help
-
跟踪:在singularity容器中运行应用程序并返回与CVMFS相关的依赖项列表。
subcvmfs trace <config> \ --apps-dir <required_input_directory> --path-list <output_file> --container <optional_input_string> --number-core <optional_input_int>
跟踪通常用于在不知道要包含在CVMFS子集中的应用程序的依赖项时使用。.
apps-dir
应是一个应用程序目录,结构如下:<apps_dir>/<command>/command.sh
。container
提供运行应用程序的特定环境(通常是在远程计算基础设施中现有的环境)。path-list
应包含命令的结果,即与要跟踪的应用程序相关的CVMFS依赖项列表。number-core
可以用于并行运行多个应用程序。
-
构建:使用
cvmfs-shrinkwrap
工具使用依赖项列表构建CVMFS子集。subcvmfs build <config> \ --path-list <Trace_output> <another_input_list> --subset-path <output_subset_path>
构建是构建CVMFS子集的必要步骤.
path-list
应是一个文件或文件列表,包含要包含在子集中的CVMFS依赖项。它可以从跟踪中获得或从头开始构建。subset-path
应该是生成的子集的路径。
-
测试:使用依赖项的子集而不是 CVMFS 执行应用程序。
subcvmfs test <config> \ --apps-dir <required_input_directory> --subset-path <required_input_path> --container <optional_input_str> --number-core <optional_input_int>
测试通常在部署 CVMFS 子集之前使用。可能需要确保子集对一组应用程序有效.
apps-dir
应是一个应用程序目录,结构如下:<apps_dir>/<command>/command.sh
。subset-path
应该是 CVMFS 子集的路径。container
提供运行应用程序的特定环境(通常是在远程计算基础设施中现有的环境)。number-core
可以用于并行运行多个应用程序。
-
部署:将 CVMFS 的子集部署到远程计算基础设施中(如果需要,在容器内)。
subcvmfs deploy <config> \ --subset-path <required_input_subset_path> --remote-location <required_input_str> --container <optional_input_path> --bootstrap <optional_input_path> --post-command <optional_input_path> --bundle-path <optional_output_path>
部署需要用户能够访问远程计算基础设施.
subset-path
应该是 CVMFS 子集的路径。remote-location
将托管 CVMFS 子集的远程计算基础设施。bundle-path
如果想将 CVMFS 子集与容器合并(如果 CVMFS 子集定期更新则不建议),则应该使用。container
提供一个特定环境来运行应用程序。如果提供,它将与 CVMFS 子集合并。如果存在bundle-path
,则是必需的。bootstrap
容器的类型。如果提供bundle-path
,则是必需的。post-command
应该代表在启动容器之前要运行的命令。如果存在bundle-path
,则是必需的。
配置
- 可能的最小配置
{
"cvmfs_extensions":
{
"<repository_name>":
{
"url": "<repository_url>",
"public_key": "<repository_pubkey>",
},
}
}
在这种情况下,应通过 CLI 传递参数。
- 一个具体的例子
{
"cvmfs_extensions":
{
"lhcb.cern.ch":
{
"url": "http://cvmfs-stratum-one.cern.ch/cvmfs/lhcb.cern.ch",
"public_key": "/cvmfs/cvmfs-config.cern.ch/etc/cvmfs/keys/<key.pub>",
},
"lhcb-condb.cern.ch":
{
"url": "http://cvmfs-stratum-one.cern.ch/cvmfs/lhcb-condb.cern.ch",
"public_key": "/cvmfs/cvmfs-config.cern.ch/etc/cvmfs/keys/<key.pub>",
}
},
"steps":
{
"trace":
{
"apps_dir": "inputs_trace",
"path_list": "namelist1.txt"
},
"build":
{
"path_list": ["namelist1.txt", "namelist2.txt"],
},
"test":
{
"apps_dir": "inputs_test",
},
"commons":
{
"subset_path": "/path/to/subcvmfs"
}
},
"tools":
{
"parrot":
{
"http_proxy": "DIRECT"
},
"singularity":
{
"name": "/cvmfs/cernvm-prod/cvm4"
}
}
}
参数完全由配置提供,除非需要重载,否则无需单独将它们提供给 CLI。这里有一些细节
/tools/singularity/name
用作命令中的container
选项。/steps/commons
汇集了所有步骤中通用的参数。
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分发
subcvmfs-builder-1.0.1.tar.gz (99.5 kB 查看哈希值)
构建分发
subcvmfs_builder-1.0.1-py3-none-any.whl (16.8 kB 查看哈希值)
关闭
subcvmfs-builder-1.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8b97fa7323e0d52d5dbf049b162457e75b8bffb96f8badf3be0345f401e5f414 |
|
MD5 | ad6efeba0c3ae6ee17ef17a0d336d397 |
|
BLAKE2b-256 | 2af630bdf16c2ec6d67b50fc6c353eccff299e1aa92b7f3e53fbb5bdf63e76df |
关闭
subcvmfs_builder-1.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3dab2c64eef4b6583507869e3adb728f7e3ab8f13d6cf5b605c2e1cfdd3501d3 |
|
MD5 | 42a0b15fe938e58449f353cf108335be |
|
BLAKE2b-256 | 26f43fa553927cd5f5924362e75cb1de9de2522698f1c405e098eaed6a45a62b |