我想执行一些不需要使用管理员帐户的操作。例如,克隆git或创建文件夹。
我试过这个:
- name: Create gogo1 directory
win_shell: mkdir c:\tmp\gogo1
become: yes
become_user: vagrant
vars:
ansible_become_pass: vagrant这将创建所需的目录玩具,但是当我以用户流浪者身份登录并尝试删除它时,我得到:
您需要提供管理员权限才能删除此文件夹。
用户权限没有授予文件夹gogo1的任何权限。此外,我还需要这样做:
- name: Change owner of gogo1
win_owner:
path: c:\tmp\gogo1
user: vagrant
recurse: yes使用win_psexec按预期工作。它创建目录,给用户游走的权限,因此我可以删除它而不被提示上面的消息。
- name: Create gogo2 directory
win_psexec:
command: cmd /k "cd c:\tmp && mkdir gogo && exit"
username: vagrant
password: vagrant我如何使用become和become_user创建一个文件夹(或者克隆一个git )并给用户所有必要的权限和所有权(就像win_psexec那样?
发布于 2018-04-30 17:19:53
要想工作,您需要它进行交互登录,以便在创建文件夹时加载用户的配置文件。
为此,您可以尝试将login_flags (Ansible 2.5+)设置为如下所示:
- name: Create gogo1 directory
win_shell: mkdir c:\tmp\gogo1
become: yes
become_user: vagrant
become_flags: logon_type=interactive logon_flags=with_profile
vars:
ansible_become_pass: vagrant您可以在这里阅读become_flags的所有细节:guide/become.html
https://stackoverflow.com/questions/50100277
复制相似问题