Bamboo - 如何在作业中的任务之间共享环境模块而不为每个任务加载它们?

问题描述 投票:0回答:1

我的计划包含许多作业以及每个作业中的许多脚本任务。

这些脚本任务大多数都依赖于我每次加载的相同 5 或 6 个模块,例如:

module load python/argparse_py2.7/1.2.1
module load python/python/2.7.13

有没有办法只加载一次并让所有后续任务都能够访问它们,而不是为每个任务加载这些环境模块?

scripting task environment bamboo environment-modules
1个回答
0
投票

一旦从脚本或交互式 shell 会话加载模块,该模块将在脚本或会话的其余部分保持加载状态,并且仍然在由主 shell 或启动的子 shell 启动的子脚本的上下文中加载由主要会议进行。

因此,在启动许多子任务/脚本的脚本上下文中,您应该将

module load
命令放在脚本开头附近,以使这些模块能够用于其余的执行或子执行。

这对于交互式 shell 会话也有效。

此外,新版本的

module
命令提供了一种方法
save
加载的模块上下文以及稍后(在脚本或其他shell会话中)
restore

这是一个模块集合使用的小例子:

$ module purge
$ module load python/argparse_py2.7/1.2.1 python/python/2.7.13
$ module save pythonjobenv
$ module savelist
Named collection list:
 1) pythonjobenv
$ module purge
$ module restore pythonjobenv
Restoring collection pythonjobenv
  Loading module: python/argparse_py2.7/1.2.1 python/python/2.7.13
© www.soinside.com 2019 - 2024. All rights reserved.