Ansible Copy2024 年 8 月 29 日 | 阅读 3 分钟 Ansible 通过 copy 和 fetch 模块提供复制文件和目录的功能。 copy 模块用途广泛。 copy 模块用于将文件和文件夹从本地机器复制到远程服务器。 fetch 模块用于将数据从远程机器复制到本地机器。 如果要复制文件后替换变量,例如具有 IP 更改的配置文件,或者您也可以使用 template 模块。 您可以使用此模块执行许多复杂的任务。 从本地复制文件到远程copy 模块用于检查在本地机器上设置在 src 参数中的文件。 然后,它会将数据复制到 destpath 中指定的远程机器路径。 在下面的示例中,我们将位于本地机器主目录中的 sample.txt 文件复制到远程服务器上的 /tmp 目录。 只要我们没有为该文件指定任何权限,远程文件的默认权限将设置为 -rw-rw-r-(0664)。 情况 1: 如果文件已经存在于远程服务器上,但源文件的内容不同,则目标文件将被修改。 您可以通过设置 force 参数来控制此行为。 默认设置为 yes。 因此它默认修改该文件。 如果您不希望在源文件不同时修改文件,则可以将此设置为 No。 如果文件在远程服务器上不存在,则以下任务将复制该文件。 情况 2: 如果在本地机器上找不到该文件,Ansible 将抛出一个错误。 例如: fatal: [remote-machine-1]: FAILED!=> {"changed": false, "failed": true, "msg": "在预期路径中找不到 '~/sample.txt'。"} 从本地复制目录到远程您也可以使用 Ansible copy 模块复制文件夹或目录。 如果“src”路径是一个目录,则它将被递归复制。 或者将复制整个目录。 此任务有两种不同的变体。 具体取决于您是否在“src”路径的端点处使用了“/”字符。 第一种方法将在远程服务器上创建一个目录,名称在 src 参数中设置。 然后,它会将源文件夹的内容复制并粘贴到该目录中。 如果您希望此行为,则不要在 src 参数中的路径后添加“/”。 在下面的示例中,它将首先在远程服务器的 /tmp 中创建一个名为 copy_dir_ex 的目录。 在远程机器上目录之间复制文件Ansible copy 允许您将文件从同一远程机器上的一个目录复制到另一个目录。 但这仅适用于文件,不适用于目录。 您可以使用 remote_src 参数让 Ansible 知道您的意图。 以下代码会将 /tmp/test.txt 复制到用户的主目录 (/home/[用户名]/)。 下一个主题Ansible 命令 |
我们请求您订阅我们的新闻通讯以获取最新更新。