跨多个文件(Docker、Python、Ansible 和 Bash)应用用户配置值的最佳方法?

Best method for applying user configuration values across multiple files (Docker, Python, Ansible, and Bash)?

项目描述: 我有一个项目使用 Docker Swarm 为 运行 上的分布式应用程序创建基础设施。该应用程序由 Python 和 bash 文件组成(所有内容都面向 Linux)。对于 bootstrap 整个项目,我使用 Ansible 构建容器、推送文件并验证每个目标 Swarm 节点上的环境。

问题: 因为这是一个应用程序,我试图让(相对)对精通技术的人用户友好,所以我希望只有一个他们可以填写的配置文件。但我对如何获取这些值(其中一些值在 Bash/Python/Docker 之间相互依赖)并实际填写实际值有点困惑。

处理此问题的最佳方法是什么?我一直在考虑制作一些 Python Ansible 启动的解析器来填充所有内容,但我一直不愿意着手去做。

Python、Docker 和 Ansible 都至少具有对环境的读取权限。 export 来自 Bash 的变量,然后独立于每个应用程序访问它们。我会认真努力减少相互依赖,因为我不知道您可以从这些应用程序写入环境。

编辑: Bash 不支持 env 铁数组,但是,您可以导出分隔字符串,而不是用许多相关变量阻塞您的环境:

export my_string='key=value:user=Bob:multiple_keys=one,two,three'

这是一个很好的计划和文档练习。仔细考虑这个字符串将如何随着脚本的发展而增长。

有关分隔字符串的两个本机示例,请参阅 $ env |awk '/^(PATH|LS_COLORS)=/' ORS=\n\n