首页 > 解决方案 > Ansible 移动文件

问题描述

我正在创建一个角色来部署 Jira 实例。我的问题是,如何将文件从一个目录移动到另一个目录,我正在尝试这样的事情:

- name: Create Jira installation directory
  command: mv "/tmp/atlassian-jira-software-{{ jira_version }}-standalone/*" "{{ installation_directory }}"
  when: not is_jira_installed.stat.exists

但它不起作用,我想将所有文件从一个目录复制到另一个目录而不复制目录。

标签: automationansibledevops

解决方案


模块的概要command

命令将不会通过 shell 处理,因此变量和$HOSTNAME操作(如"*""<"">""|"和 )将不起作用。如果您需要这些功能,请使用ansible.builtin.shell模块。";""&"

因此,您的问题是该command模块没有扩展通配符*,正如您所期望的那样,您应该使用该shell模块:

- name: Create Jira installation directory
  shell: "mv /tmp/atlassian-jira-software-{{ jira_version }}-standalone/* {{ installation_directory }}"
  when: not is_jira_installed.stat.exists

现在,请注意,您也可以通过使用模块来完成此操作,而无需使用commandor 。shellcopy

- copy:
    src: "/tmp/atlassian-jira-software-{{ jira_version }}-standalone/"
    dest: "{{ installation_directory }}"
    remote_src: yes

推荐阅读