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

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

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

问题:因为这是一个应用程序,我正在努力使(相对)用户友好的技术娴熟类型的人,我想只有一个配置文件,他们可以填写。但是我对如何获取这些值(其中一些是Bash / Python / Docker中的相互依赖)并实际填充实际值有点困惑。

什么是最好的方法来解决这个问题?我一直在考虑制作一些Ansible开始填充所有内容的Python解析器,但我一直不愿意这样做。

python bash docker ansible configuration-files
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.