我如何使用mv模块Ansible

问题描述 投票:2回答:1

我想使用上Ansible MV的模块,但我没有运气。

在我最初的尝试我做了以下内容:

- name: changing the name of the file
  shell: mv /tmp/bundle /opt/Rocket.Chat

我得到以下错误:

FAILED! => {"changed": true, "cmd": "mv /tmp/bundle /opt/Rocket.Chat", "delta": "0:00:00.033553", "end": "2019-02-11 06:06:43.273787", "msg": "non-zero return code", "rc": 1, "start": "2019-02-11 06:06:43.240234", "stderr": "mv: cannot move ‘/tmp/bundle’ to ‘/opt/Rocket.Chat/bundle’: File exists", "stderr_lines": ["mv: cannot move ‘/tmp/bundle’ to ‘/opt/Rocket.Chat/bundle’: File exists"], "stdout": "", "stdout_lines": []}

所以,我把它改为:

   - name: create directory
       file:
         state: directory
         path: "/opt/Rocket.Chat"

   - name: copy the files
        copy:
          src: "/tmp/bundle"
          dest: "/opt/Rocket.Chat"
          remote_src: yes

    - name: delete the other files
        file: path=/tmp/bundle state=absent

我的新的错误是:

FAILED! => {"changed": false, "msg": "Remote copy does not support recursive copy of directory: /tmp/bundle"}
ansible mv
1个回答
1
投票

看来,“复制模块与递归和remote_src工作”还没有工作,但will be supported from May 2019

这是一种解决方法,编辑文件夹名称您的设置。

# Copy all files and directories from /usr/share/easy-rsa to /etc/easy-rsa

- name: List files in /usr/share/easy-rsa
  find:
    path: /usr/share/easy-rsa
    recurse: yes
    file_type: any
  register: find_result

- name: Create the directories
  file:
    path: "{{ item.path | regex_replace('/usr/share/easy-rsa','/etc/easy-rsa') }}"
    state: directory
    mode: "{{ item.mode }}"
  with_items:
    - "{{ find_result.files }}"
  when:
    - item.isdir

- name: Copy the files
  copy:
    src: "{{ item.path }}"
    dest: "{{ item.path | regex_replace('/usr/share/easy-rsa','/etc/easy-rsa') }}"
    remote_src: yes
    mode: "{{ item.mode }}"
  with_items:
    - "{{ find_result.files }}"
  when:
    - item.isdir == False
© www.soinside.com 2019 - 2024. All rights reserved.