使用Shell Command" mv"使用ansible将文件夹从一个移动到另一个

时间:2016-10-05 16:19:59

标签: ansible ansible-playbook

我想使用下面的Ansible脚本将workspace3文件夹移动到/ usr / share目录。但是我无法移动它。

 - name: Move workspace3 directory to /usr/share/ Folder
   command: mv /tmp/workspace3/ /usr/share

我也试过shell模块

   shell: mv /tmp/workspace3 /usr/share

我认为这是一个许可问题,如何通过ansible定义权限?

2 个答案:

答案 0 :(得分:4)

/ usr / share是root用户拥有的目录。要在此目录中创建文件夹(或移动文件夹),必须使用特权升级。使用ansible非常简单,只需在剧本中使用以下内容即可;

become: yes

确保在运行Playbook时使用-K标志,该标志将询问您sudo密码,假设您没有在sudoers文件中为该用户配置NOPASSWD。 “成为”使用的默认用户是root。

Doc:http://docs.ansible.com/ansible/become.html

答案 1 :(得分:2)

在2.0版中,使用带有 remote_src 参数的复制模块。

- name: Move workspace3 directory to /usr/share/ Folder
  become: yes
  copy:
    remote_src: yes
    src: /tmp/workspace3
    dest: /usr/share/

如果要移动文件,则需要删除带文件模块的旧文件

- name: Remove old files foo
  file:
    path: /tmp/workspace3
    state: absent

希望能帮助你。