특정 작업을 수행하기 위해 플레이북에서 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
프로세스에는 세 가지 엔터티가 포함됩니다.
- 플레이북을 실행하는 사용자(No1)
- 원격 호스트에 로그인하는 사용자(No2)
- No2는 (No3)의 사용자가 될 수 있습니다
- 변하기 쉬운원격 사용자No2를 정의합니다. 만약에원격 사용자No2는 No1로 정의되지 않습니다.
- 환경"비커밍: 리얼"No2가 다음으로 업그레이드될 예정입니다.사용자가 되세요No3(기본값: 루트). 만약에"되기: 거짓"Ansible은 원격 호스트에서 No2로 실행됩니다.
결과적으로 당신이 원하는 것은통나무다른 것으로원격 사용자(No2)를 원격 호스트에 연결하고되지 않도록(업그레이드) 다른 것으로사용자가 되세요(3번). 이것도 설명해준다"되기: 거짓"임무 중.