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

Use Shell Command "mv" using ansible to move folder from one to another

我想使用以下 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定义权限?

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

become: yes

确保当你运行你的剧本时你使用 -K 标志,它会要求你输入 sudo 密码,假设你没有在你的 sudoers 文件中为该用户配置 NOPASSWD。 "become" 使用的默认用户是 root。

文档:http://docs.ansible.com/ansible/become.html

在 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

希望对你有所帮助。