gpt4 book ai didi

Ansible 复制目录的最佳实践

转载 作者:行者123 更新时间:2023-12-03 12:33:20 28 4
gpt4 key购买 nike

在我的剧本中,我有

- name: Grab h5bp/server-configs-nginx
git: repo=https://github.com/h5bp/server-configs-nginx.git
dest=/tmp/server-configs-nginx
version="3db5d61f81d7229d12b89e0355629249a49ee4ac"
force=yes

- name: Copy over h5bp configuration
command: cp -r /tmp/server-configs-nginx/{{ item }} /etc/nginx/{{ item }}
with_items:
- "mime.types"
- "h5bp/"

这会在 ansible-lint 中引发警告:
[ANSIBLE0006] cp used in place of copy module
/Users/austinpray/Dropbox/DEV/opensauce/bedrock-ansible/roles/nginx/tasks/main.yml:0
Task/Handler: Copy over h5bp configuration

所以这就提出了一个问题:有没有更好的方法来使用 ansible 模块而不是命令来做到这一点?

最佳答案

目前,command是您的最佳选择。没有远程到远程的选项。这是一个关于它的线程:How to move/rename a file using an Ansible task on a remote system

您还有其他几个选择:

  • 您可以使用 file建立符号链接(symbolic link)的模块(通过设置 srcpathstate=link
  • 您可以查看 Ansible 服务器上的 repo,然后使用 copy .这是部署代码的更常见模型。
  • 您可以继续使用 command但用 stat 包裹它有条件的,所以它只覆盖一次。如果您使用 notify,这将特别有用。重启 nginx。

  • 最后,看起来您可能正在执行“由 git 部署”。这并不总是最好的选择,特别是如果你不“拥有”那个 repo。但这可能很好——只是有点代码味道。

    关于Ansible 复制目录的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25576871/

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