Ansible on Windows: become / become_user permission/owner 问题
Ansible on Windows: become / become_user permission/owner problems
我想执行一些不需要使用管理员帐户的操作。例如,克隆 git 存储库或创建文件夹。
我试过这个:
- name: Create gogo1 directory
win_shell: mkdir c:\tmp\gogo1
become: yes
become_user: vagrant
vars:
ansible_become_pass: vagrant
这会创建所需的目录,但是当我以用户 vagrant 身份登录并尝试删除它时,我得到:
You'll need to provide administrator permission to delete this folder.
用户 Vagrant 没有被授予对文件夹 gogo1 的任何权限。
我还需要这样做:
- name: Change owner of gogo1
win_owner:
path: c:\tmp\gogo1
user: vagrant
recurse: yes
使用 win_psexec
按预期工作。它创建目录,为用户 vagrant 提供权限,因此我可以删除它而不会提示上述消息。
- 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
是吗?
为了按照您的意愿工作,您需要它以交互方式登录,以便在创建文件夹时加载用户的配置文件。
为此,您可以尝试将 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 上的所有细节:http://docs.ansible.com/ansible/latest/user_guide/become.html
我想执行一些不需要使用管理员帐户的操作。例如,克隆 git 存储库或创建文件夹。
我试过这个:
- name: Create gogo1 directory
win_shell: mkdir c:\tmp\gogo1
become: yes
become_user: vagrant
vars:
ansible_become_pass: vagrant
这会创建所需的目录,但是当我以用户 vagrant 身份登录并尝试删除它时,我得到:
You'll need to provide administrator permission to delete this folder.
用户 Vagrant 没有被授予对文件夹 gogo1 的任何权限。 我还需要这样做:
- name: Change owner of gogo1
win_owner:
path: c:\tmp\gogo1
user: vagrant
recurse: yes
使用 win_psexec
按预期工作。它创建目录,为用户 vagrant 提供权限,因此我可以删除它而不会提示上述消息。
- 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
是吗?
为了按照您的意愿工作,您需要它以交互方式登录,以便在创建文件夹时加载用户的配置文件。
为此,您可以尝试将 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 上的所有细节:http://docs.ansible.com/ansible/latest/user_guide/become.html