win_command를 통해 exe를 시작하는 동안 Ansible 문제가 발생합니다.

win_command를 통해 exe를 시작하는 동안 Ansible 문제가 발생합니다.

현재 Fusion Inventory Agent를 제거한 다음 Windows Server 2016-2022에 GLPI 에이전트 1.4를 배포하는 방법에 대한 플레이북을 작성 중입니다. 아래에서 자세히 설명하는 모든 테스트에서는 모든 서버에 대한 관리자 권한이 있는 도메인 계정을 사용합니다.

(나는 새로 업그레이드된 Debian 11에서 ansible core 2.12.10 + python 3.9.2를 실행합니다)

  • Fusion Inventory 에이전트 제거 프로그램 레지스트리 경로는 다음 위치에 있으므로 옵션을 "C:\Program Files\FusionInventory-Agent\Uninstall.exe"사용하여 cmd/powershell에서 수동으로 실행하면 /S예/아니요 UAC 팝업이 표시되므로 예를 누르면 에이전트를 제거합니다.

  • 이제 cmd/powershell.exe를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행하면 "C:\Program Files\FusionInventory-Agent\Uninstall.exe /S"UAC 없이 쉽게 시작할 수 있습니다. 이는 정상입니다.

Ansible 관점에서 다음 작업을 사용하는 경우:

  tasks:
  - name: uninstall fusion inventory agent through cmd
    ansible.windows.win_command: '"C:\Program Files\FusionInventory-Agent\Uninstall.exe" "/S"'
    become: yes
    become_user: my_domain_account
    become_method: runas
    register: fusion_agent_out

그것은 다음과 같습니다 :

Using module file /usr/lib/python3/dist-packages/ansible_collections/ansible/windows/plugins/modules/win_command.ps1
Pipelining is enabled.
<frhd01inp009> ESTABLISH WINRM CONNECTION FOR USER: mydomain_account@my_domain on PORT 5985 TO my_server
EXEC (via pipeline wrapper)
changed: [server_name] => {
    "changed": true,
    "cmd": "\"C:\\Program Files\\FusionInventory-Agent\\Uninstall.exe\" \"/S\"",
    "delta": "0:00:00.468425",
    "end": "2022-11-24 16:32:12.065029",
    "rc": 0,
    "start": "2022-11-24 16:32:11.596603",
    "stderr": "",
    "stderr_lines": [],
    "stdout": "",
    "stdout_lines": []
}

그러나 실제로는 아무것도 제거하지 않습니다. Ansible이 명령을 성공적으로 실행했지만 결과를 포착하지 못하는 것 같습니다.

또한 변경 사항이 있는지 확인하기 위해 다양한 방법을 시도했지만(psexec에서 cmd 내에서 powershell.exe 실행...) 결과가 실패하거나 "변경"되었지만 uninstall.exe가 정상적으로 실행되지 않습니다.

Ansible 관점에서 이러한 종류의 제거를 어떻게 처리합니까?

친애하는

게일 사람

답변1

마지막으로 나는 다른 솔루션으로 끝났습니다. Windows 예약 작업(여전히 ansible 사용)을 생성하여 필요한 제거 프로그램과 옵션을 시작한 다음 사용자 이름을 지정하고 트리거하고 한 번 실행합니다.

바이패스지만 꽤 잘 작동합니다

관련 정보