gpt4 book ai didi

deployment - 使用 Ansible 将单个文件从私有(private) github 存储库下载到远程主机

转载 作者:行者123 更新时间:2023-12-04 01:09:21 25 4
gpt4 key购买 nike

示例场景:某个服务的配置文件保存在私有(private) github 存储库上的版本控制之下。我想编写一个剧本,在远程节点上获取其中一个文件并将其放入所需的位置。

我可以想到几个解决方案:

  • 在运行 ansible ( local_action ) 的机器上进行检查,然后使用 copy模块
  • 在远程节点上检查(使用 git 模块),使用 command: cp src dest creates=dest 将文件复制到所需位置(也许使用处理程序来执行此操作 - 仅当 repo 需要更改时)
  • 使用 url 模块或 command: wget https://raw.github.com/repo/.../file creates=file在剧本中只下载感兴趣的文件。是command模块实际上会检查要创建的文件是否与可能已经存在的文件不同,或者它只是检查文件是否存在?
  • 在运行 ansible (local_action) 的机器上使用 wget,然后使用复制模块将其推送到远程节点

  • 这些的优点/缺点是什么。其中哪一项(如果有的话)可以被认为是好的做法。什么是最好的通用解决方案?

    最佳答案

    首先,我会说我们为生产环境选择了第二种解决方案,我保证一件事——它可以正常工作。现在对于更长的版本:

    解决方案编号1:

  • 简单而强大 - 可以工作
  • 不会用不相关的文件(其他配置文件)“污染”生产服务器
  • 不会将具有 I/O 的生产服务器加载到 GitHub(可能可以忽略不计)

  • 解决方案编号2:
  • 简单而强大 - 可以工作
  • 为了减少污染,我们将配置 repo 克隆到/tmp 并在 playbook
  • 末尾删除它

    解决方案编号3/4:

    我猜它会起作用,但是在源代码管理中进行配置然后没有真正使用源代码管理功能感觉有点奇怪。
    这些解决方案的优点是您可以“挑选”要下载的配置文件,而不是克隆整个存储库。这也减少了对 github 的 I/O,因为随着时间的推移克隆变得越来越重。

    关于deployment - 使用 Ansible 将单个文件从私有(private) github 存储库下载到远程主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21590906/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com