示例场景:某个服务的配置文件保留在私有github存储库的版本控制之下。我想编写一个在远程节点上获取其中一个文件并将其放入所需位置的剧本。
我可以想到几个解决方案:
local_action
)的计算机上执行结帐,然后使用copy
模块git
模块),使用command: cp src dest creates=dest
将文件复制到所需位置(也许使用处理程序执行此操作 - 仅当repo有更改要撤消时)command: wget https://raw.github.com/repo/.../file creates=file
仅下载感兴趣的文件。 command
模块实际上是要检查要创建的文件是否与可能已存在的文件不同,或仅检查文件是否存在? local_action
)的计算机上使用wget,然后使用复制模块将其推送到远程节点这些的优点/缺点是什么?哪些(如果有的话)可以被视为良好做法。对此最好的一般解决方案是什么?
答案 0 :(得分:5)
我首先要说的是,我们为生产环境选择了第二种解决方案,我保证一件事 - 它只是有效。现在是更长的版本:
解决方案否。 1:强>
解决方案否。 2:强>
解决方案否。 3/4:强>
我的猜测它会起作用,但是在源代码控制中使用你的配置然后并没有真正使用源代码控制功能感觉有点奇怪。 这些解决方案的优点是,您可以“选择”要下载的配置文件,而不是克隆整个存储库。这也减少了对github的I / O,因为克隆随着时间的推移变得越来越重。