使用 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。
在 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
希望对你有所帮助。
我想使用以下 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。
在 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
希望对你有所帮助。