我有一个 charm,我希望能够在其中一个钩子中调用一个小的 Python 脚本作为其执行的一部分。我应该把这个辅助脚本放在哪里?我可以把它放在钩子目录中并将其包含在内吗?那么,一旦它被传输到远程机器,它位于哪里以便我可以执行它?
答案1
charm 的整个目录(根目录是包含 metadata.yaml 的目录)在服务单元上捆绑和解压,包括权限位(所有权始终转移到 root:root)。钩子始终以 charm 根目录作为当前工作目录运行,并保存在 $CHARM_DIR 中。
因此,您可以将脚本放在任何您想要的地方。目前还没有就此的最佳做法达成一致。有些人认为仅有的钩子应该放在钩子目录中,而外部脚本应该放在根目录之外的其他目录中。其他人只是把所有内容都放在钩子中。