Ansible은 플레이북의 특정 작업에 대한 사용자가 됩니다.

Ansible은 플레이북의 특정 작업에 대한 사용자가 됩니다.

특정 작업을 수행하기 위해 플레이북에서 remote_user를 사용하는 방법이 있습니까? 이는 기업 환경을 위한 것이므로 액세스 권한이 매우 제한되어 있습니다(예: /etc/sudoers에 대한 액세스 권한 없음).

해결책이 필요합니다.

제어 노드는 = myserver@xyz | 비밀번호 없이 weblogic@server1 및 chandru@server1에 ssh할 수 있습니다(키 기반).

작업 1: weblogic에서 실행해야 함

작업 2: chandru에 의해 실행되어야 함

지금은 간단한 작업을 수행하기 위해 두 개의 플레이북을 사용하고 있습니다.

playbook1.yml -u weblogic ( for the first task)
playbook2.yml -u chandru ( for the second task)

일단 weblogic 사용자가 되면 Chandru의 _user 또는 _sudo가 될 수 없습니다.

내 제어 노드는 비밀번호 없이 두 ID(chandru 및 weblogic) 모두에 SSH를 통해 연결할 수 있습니다.

답변1

핵심 단어 원격 사용자작업에도 사용할 수 있습니다. 예를 들어 테스트해 보세요.

  - command: whoami
    register: result
    remote_user: weblogic
    become: false
  - debug:
      var: result.stdout

  - command: whoami
    register: result
    remote_user: chandru
    become: false
  - debug:
      var: result.stdout

프로세스에는 세 가지 엔터티가 포함됩니다.

  1. 플레이북을 실행하는 사용자(No1)
  2. 원격 호스트에 로그인하는 사용자(No2)
  3. No2는 (No3)의 사용자가 될 수 있습니다
  • 변하기 쉬운원격 사용자No2를 정의합니다. 만약에원격 사용자No2는 No1로 정의되지 않습니다.
  • 환경"비커밍: 리얼"No2가 다음으로 업그레이드될 예정입니다.사용자가 되세요No3(기본값: 루트). 만약에"되기: 거짓"Ansible은 원격 호스트에서 No2로 실행됩니다.

결과적으로 당신이 원하는 것은통나무다른 것으로원격 사용자(No2)를 원격 호스트에 연결하고되지 않도록(업그레이드) 다른 것으로사용자가 되세요(3번). 이것도 설명해준다"되기: 거짓"임무 중.

관련 정보