【问题标题】:Ansible on Windows: become / become_user permission/owner problemsWindows 上的 Ansible:成为 / become_user 权限/所有者问题
【发布时间】:2018-10-10 12:50:21
【问题描述】:

我想执行一些不需要使用管理员帐户的操作。例如,克隆 git repo 或创建文件夹。

我试过了:

  - name: Create gogo1 directory
    win_shell: mkdir c:\tmp\gogo1
    become: yes
    become_user: vagrant
    vars:
      ansible_become_pass: vagrant

这会创建所需的目录,但是当我以 vagrant 用户身份登录并尝试将其删除时,我得到:

您需要提供管理员权限才能删除此文件夹。

用户 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

如何使用 becomebecome_user 创建文件夹(或克隆 git 存储库)并为用户提供所有必要的权限和所有权(如 win_psexec 所做的那样?

【问题讨论】:

    标签: windows ansible file-permissions ansible-2.x


    【解决方案1】:

    要按照您的意愿工作,您需要它以交互方式登录,以便在创建文件夹时加载用户的配置文件。

    为此,您可以尝试将 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-15
      • 2014-04-02
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多