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

问题描述

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

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

解决这个问题的最佳方法是什么?我一直在考虑制作一些 Ansible 启动的 Python 解析器来填充所有内容,但我一直不愿意跳上去。

标签: pythonbashdockeransibleconfiguration-files

解决方案


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

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

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

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

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


推荐阅读