使用Ansible将单个文件从私有GitHub存储库下载到远程主机



示例方案:某个服务的配置文件保存在私人github存储库上的版本控制下。我想编写一本剧本,该剧本在远程节点上获取这些文件之一并将其放入所需的位置。

我可以想到一些解决方案:

  1. 在运行Ansible(local_action)的计算机上进行结帐,然后使用copy模块
  2. 在远程节点上进行结帐(使用git模块),使用command: cp src dest creates=dest将文件复制到所需的位置(也许使用处理程序进行此操作 - 只有在Repo具有更改要更改时)
  3. 在剧本中使用URL模块或command: wget https://raw.github.com/repo/.../file creates=file仅下载感兴趣的文件。command模块实际上要检查要创建的文件是否与已经存在的文件不同,还是仅检查文件存在?
  4. 在运行Ansible(local_action)的计算机上使用WGET,然后使用复制模块将其推到远程节点

这些的优点/缺点是什么。其中(如果有)可以被视为好实践。最佳的一般解决方案是什么?

我首先要说我们为生产环境选择了第二个解决方案,我保证一件事 - 它只是有效的。现在为更长的版本:

解决方案编号。1:

  • 简单而健壮 - 只能工作
  • 不使用无关的文件(其他配置文件)"污染"生产服务器
  • 不用I/O加载生产服务器到GitHub(可能可以忽略不计)

解决方案编号。2:

  • 简单而健壮 - 只能工作
  • 要减少污染,我们将配置存储库克隆到/tmp并在剧本结束时删除

解决方案编号。3/4:

我的猜测会起作用,但是将您的配置在源控件中进行,然后实际使用源控制功能有点奇怪。这些解决方案的优点是您可以"樱桃挑选"要下载的配置文件而不是克隆整个存储库。随着克隆的变化,这也会减少I/O对GitHub的I/O。

相关内容

  • 没有找到相关文章

最新更新