使用ansible复制本地文件(如果存在)

2024-03-11

我正在一个项目中工作,我们使用 ansible 来创建部署服务器集群。 我必须实现的任务之一是将本地文件复制到远程主机,前提是该文件本地存在。 现在我正在尝试用这个来解决这个问题

- hosts: 127.0.0.1 
  connection: local
  tasks:
    - name: copy local filetocopy.zip to remote if exists
    - shell: if [[ -f "../filetocopy.zip" ]]; then /bin/true; else /bin/false; fi;
      register: result    
    - copy: src=../filetocopy.zip dest=/tmp/filetocopy.zip
      when: result|success

但这失败并显示以下消息: 错误:任务“将本地 filetocopy.zip 复制到远程(如果存在)”中缺少“action”或“local_action”属性

我尝试使用命令任务创建此 if 。 我已经尝试使用 local_action 创建此任务,但无法使其工作。 我发现的所有示例都没有考虑 local_action 中的 shell,只有命令示例,并且除了命令之外没有其他任何内容。 有没有办法使用ansible来完成这个任务?


更全面的答案:

如果你想检查是否存在local在执行某些任务之前创建文件,以下是完整的片段:

- name: get file stat to be able to perform a check in the following task
  local_action: stat path=/path/to/file
  register: file

- name: copy file if it exists
  copy: src=/path/to/file dest=/destination/path
  when: file.stat.exists

如果你想检查是否存在remote在执行某些任务之前文件,这是要走的路:

- name: get file stat to be able to perform check in the following task
  stat: path=/path/to/file
  register: file

- name: copy file if it exists
  copy: src=/path/to/file dest=/destination/path
  when: file.stat.exists
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用ansible复制本地文件(如果存在) 的相关文章

随机推荐

  • 如何为javascript接口配置proguard?

    我已经实现了一个使用 JavascriptInterface 的 Webview 当不进行混淆时它工作得很好 但是一旦 Proguard 处于活动状态 它就不起作用了 我在这里查看了其他答案 但仍然无法使其正常工作 一些WebView类 p
  • 更改 Android 中的 MAC 地址

    我正在尝试更改已 root 的 Note 2 Android 设备的 Mac 地址 我做了以下事情 busybox ifconfig wlan0 关闭 busybox ifconfig wlan0 硬件以太 00 11 22 33 44 5
  • Rails 4 simple_form owns_to 关联未定义方法错误

    使用 Rails 4 当我想从对象 Document Document 渲染表单 使用 simple form 时 出现以下错误 undefined method document type id for
  • 搜索结果 url 中的 django csrf_token

    搜索结果 url 中有 csrf 不知道为什么会存在以及如何删除它 搜索效果很好 这是网址 search csrfmiddlewaretoken 675d1340034e094866d15a921407e3fc q testing 这是视图
  • 可靠的全双工串行通信

    我正在设计一种设备 它将加密从 PC 发送的长 假设无限 数据流并将其发回 我计划在运行全双工的设备上使用单个串行端口 并通过硬件握手来 阻止 数据 在每个块后发送一个 CRC 值 该设备只会缓冲有限数量的块 理想情况下 只有一个缓冲区累积
  • 是否可以在 OSX 中检测 Power Nap / DarkWake 模式

    我有一个通过 launchd 启动的守护进程 即使在 DarkWake 期间 它也会运行 并且在 OS X 再次返回睡眠状态之前没有时间完成 我可以想到以下解决方案 但没有找到实现此目的的方法 不要让该守护进程在 DarkWake 期间运行
  • Ropemacs 使用教程

    有很多网站都有相关说明安装Ropemacs 但到目前为止我找不到任何有关如何操作的说明use安装完成后即可 我已经安装了它 或者至少看起来是这样 Emacs 在其顶部菜单栏中有 Rope 菜单 怎么办 到目前为止 我只能使用 显示文档 默认
  • Docker 中的非 root 用户

    我有一个基本的 Dockerfile FROM ubuntu xenial USER test ENTRYPOINT bin bash 对于这个 Dockerfile 我希望能够创建一个没有密码的用户 并且当 Docker 容器运行时 我希
  • 通过 websocket 使用 javascript 传输文件

    你好 我正在尝试传输文件 我有一些程序将文件转换为二进制并使用 C 通过网络传输它们 我想知道我是否能够使用 javascript 和 websocket 传输文件 任何有关如何将我的 C 程序集成到 JavaScript 中的示例将不胜感
  • 无法在 Sublime Text 中的 REPL R 中运行选定的行

    按照这些说明为 sublime text 设置 REPLhttp www kevjohnson org using r in sublime text 3 http www kevjohnson org using r in sublime
  • 什么是擦除

    什么是擦除以及擦除对仿制药的限制是什么 Erasure http download oracle com javase tutorial java generics erasure html是在编译时使用类型但在运行时不存在的结果 这是 J
  • 反序列化后如何处理SerializationException

    我在 Spring Kafka 设置中使用 Avro 和 Schema 注册表 我想以某种方式处理SerializationException 在反序列化期间可能会抛出该异常 我找到了以下两个资源 https github com spri
  • 自动布局或使用 NSAttributedString 计算高度来实现 UITableViewCell 的动态高度的最佳方法是什么?

    我已经按照教程进行了http raywenderlich com 73602 dynamic table view cell height auto layout http raywenderlich com 73602 dynamic t
  • Delphi拖拽能否“提升”为对接?

    我有一个TPageControl其页面都是使用附加的各种形式ManualDock 用户应该能够通过拖动选项卡来重新排列选项卡 这已经可以使用了 然而 也应该可以取消停靠的表单 现在我有以下代码 procedure TMainForm Pag
  • Git 提交后挂钩:如何在 Windows 中启动 bat 文件

    我有一个带有名称的bat文件jenkins bat开始在詹金斯服务器上构建进程 现在我想在 git 中将这个 bat 文件作为 post commit hook 执行 因此创建了以下文件post commit在文件夹中 git hooks
  • cd:参数太多 - 空格正确转义+引号?

    使用 cygwin 终端 我的 bashrc 中有以下内容 export WINHOME cygdrive c Users userName export TUTORING WINHOME Desktop Coding Projects T
  • 如何计算OpenCV中Mat的最大像素值[重复]

    这个问题在这里已经有答案了 我想 这应该是显而易见的 但我找不到简单的方法来找到 OpenCV Mat 中所有像素中的最大值 当然 我可以对每种像素类型执行以下操作 但一般的 max 函数仍然有用 double cvMax cv Mat m
  • Woocommerce:支付网关自定义感谢页面

    我正在创建一个 Woocommerce 自定义支付网关插件 它基本上将用户重定向到支付服务页面 然后支付服务页面将用户重定向回指定的 URL 一切都按预期工作 但我似乎无法创建自定义感谢页面从插件 我所说的 来自插件 的意思是 如果有人安装
  • 使Python程序可执行

    from distutils core import setup import py2exe sys os sys argv append py2exe setup options py2exe bundle files 1 windows
  • 使用ansible复制本地文件(如果存在)

    我正在一个项目中工作 我们使用 ansible 来创建部署服务器集群 我必须实现的任务之一是将本地文件复制到远程主机 前提是该文件本地存在 现在我正在尝试用这个来解决这个问题 hosts 127 0 0 1 connection local