路径中带有bash命令的Ansible复制

路径中带有bash命令的Ansible复制,ansible,Ansible,我有一个负责任的任务: - name: Copy files from A to B copy: src: "{{ item }}" dst: /usr/lib/modules/$(uname -r)/misc/ with_items: - file.one - file.two 问题是,ansible创建了一个名为/usr/lib/modules/$(uname-r)/misc/(字面意思)的目录,并将文件复制到那里,而不是用命令的输出替换$(uname-

我有一个负责任的任务:

- name: Copy files from A to B
  copy:
    src: "{{ item }}"
    dst: /usr/lib/modules/$(uname -r)/misc/
  with_items:
   - file.one
   - file.two
问题是,ansible创建了一个名为/usr/lib/modules/$(uname-r)/misc/(字面意思)的目录,并将文件复制到那里,而不是用命令的输出替换
$(uname-r)


如何完成此操作?

默认情况下,ansible将运行其安装模块并发现有关目标系统的事实

你可以:


默认情况下,ansible将运行其设置模块并发现有关目标系统的事实

你可以:


要添加到@joppich的答案中,如果您想替换一个不能作为事实使用的值,您可以使用:


要添加到@joppich的答案中,如果您想替换一个不能作为事实使用的值,您可以使用:


我也喜欢这个答案,谢谢你。不过我得选一个。我真的掷了一枚硬币^^我也喜欢这个答案,谢谢你。不过我得选一个。我真的掷了一枚硬币^^
- name: Copy files from A to B
    copy:
  src: "{{ item }}"
  dst: /usr/lib/modules/{{ ansible_kernel }}/misc/
  with_items:
   - file.one
   - file.two
- name: Determine kernel version
  command: uname -r
  register: r_uname

- name: Copy files from A to B
  copy:
    src: "{{ item }}"
    dst: /usr/lib/modules/{{ r_uname.stdout_lines[0] }}/misc/
  with_items:
   - file.one
   - file.two