bdutil
实际上旨在支持自定义扩展;您当然可以编辑现有的一个简单的方法来开始,但推荐的最佳实践是创建您自己的"_env.sh"
扩展,如果需要可以与其他 bdutil 扩展混合。这样,您可以更轻松地将 Google 所做的任何更新合并到核心bdutil
,而不必担心与您的自定义冲突。您只需要创建两个文件,例如:
带有 shell 命令的文件:
# install_my_custom_tools.sh
# Shell commands to install whatever you want
apt-get -y install Xvfb
引用您将插入 bdutil 的命令文件的文件:
# my_custom_tools_env.sh
COMMAND_GROUPS+=(
"install_my_custom_tools_group:
install_my_custom_tools.sh
"
)
COMMAND_STEPS+=(
'install_my_custom_tools_group,install_my_custom_tools_group'
)
然后,在运行 bdutil 时,您可以简单地将其与-e
标志混合:
./bdutil -e my_custom_tools_env.sh deploy
如果您想将帮助脚本组织到多个文件中,您可以轻松地在单个文件中列出更多的 shell 脚本COMMAND_GROUP
:
COMMAND_GROUPS+=(
"install_my_custom_tools_group:
install_my_custom_tools.sh
my_fancy_configuration_script.sh
"
)
如果您希望某些东西只在主服务器上运行,只需提供*
给第二个参数COMMAND_STEPS
:
COMMAND_GROUPS+=(
"install_my_custom_tools_group:
install_my_custom_tools.sh
"
"install_on_master_only:
install_fancy_master_tools.sh
"
)
COMMAND_STEPS+=(
'install_my_custom_tools_group,install_my_custom_tools_group'
'install_on_master_only,*'
)
使用这些时,您仍然可以轻松地与其他 env 文件混合,例如:
./bdutil -e my_custom_tools_env.sh -e extensions/spark/spark_env.sh deploy
对于与 bdutil 位于同一目录或该extensions
目录下的文件,您还可以使用简写符号,仅指定不带_env.sh
后缀的文件基名:
./bdutil -e my_custom_tools -e spark deploy