web-dev-qa-db-ja.com

Ansibleプレイブック、管理者特権モードで特定の(ドメイン)ユーザーを使用してPowerShellスクリプトを実行するための適切な構文は何ですか?

オフライン環境でAnsible 2.4.2を実行し、Kerberosを使用して認証します。

Ansibleプレイブックを介して、特定の(ドメイン)ユーザーであるpowershellスクリプトを実行するための適切な構文は何ですか:DOMAIN\someuser、管理者モードで?

昇格モードとは、WindowsインターフェイスでDOMAIN\someuserとしてログインしてスクリプトを実行し、cmdまたはpowershellプロンプトのショートカットを右クリックして、[管理者として実行]を選択することを意味します。もちろん、これはローカルユーザー "administrator"でスクリプトを実行できることを意味するものではありません。

私が実行したいのは:

powershell.exe -executionpolicy bypass -noninteractive -nologo -file "myscript.ps1" 

私がbecome.ymlで試したこと:

- name: sigh
  win_command: powershell.exe -executionpolicy bypass -noninteractive -nologo -file "myscript.ps1" 
  become: yes
  become_user: DOMAIN\someuser
  become_password: someuserpassword
  become_method: runas

スクリプトは実行されますが、関連するエラーが昇格で実行されていません。 win_Shellとrawで同じことを試しました。 Become_UserとBecome_Passwordなしで試してみました(ymlは[email protected]のユーザーとパスワードで実行されるため、becomeに必要かどうかはわかりません)。

私はこれをドラッグしていて、次のようにしてソリューションへの参照を見つけていません: http://docs.ansible.com/ansible/latest/become.html

何か案は?

4
Nahshon paz

プレイブックで機能させるために、次のことを行いました。

- name: Run ps1 script in privileged mode
  hosts: "{{ my_hosts }}"
  become_method: runas

  vars:
    ansible_become_password: mysupersecretpasswrod

  tasks:
    - win_Shell: '.\myscript.ps1'
      become: yes
      become_user: Administrator
4
Christina A

以前にPsExecを使用して、プロファイルのロードが必要なソフトウェアインストールの特定のWindowsドメインユーザーとしてタスクを実行しました。これを使用して、リモートシステムの管理者ユーザーになりすまして、Powershellスクリプトを実行することもできます。

これは私の最初の選択ではありませんが、Windowsホストで動作するようになる問題もありました。

- name: Copy PsExec
  win_copy:
    src: "files/PsExec.exe"
    dest: "c:\\temp\\psexec.exe"
    force: no

- name: Run powershell as a specific domain user
  win_psexec:
    command: "powershell.exe -executionpolicy bypass -noninteractive -nologo -file 'myscript.ps1'"
    executable: C:\temp\psexec.exe
    elevated: yes
    nobanner: yes
    username: "{{ dom_username }}"
    password: "{{ dev_password }}"
    interactive: yes
3
Tj Kellie