示例场景:某个服务的配置文件保存在私有Github仓库中的版本控制下。我想编写一个playbook,在远程节点上获取其中一个文件并将其放置到所需的位置。
我可以想到几种解决方案:
我可以想到几种解决方案:
- 在运行ansible的机器上执行checkout(使用local_action),然后使用copy模块。
- 在远程节点上进行checkout(使用git模块),使用“command: cp src dest creates=dest”将文件复制到所需的位置(也许可以通过处理程序来实现,只有在需要拉取更改时才操作)
- 在playbook中使用URL模块或“command: wget https://raw.github.com/repo/.../file creates=file”只下载感兴趣的文件。但是,命令模块是否会检查要创建的文件与可能已经存在的文件是否不同,还是仅检查文件是否存在?
- 在运行ansible的机器上使用wget(使用local_action),然后使用copy模块将其推送到远程节点。