나는 다음을 수행하는 플레이북을 만들었습니다.
쉘: source ~/.bashrc && some_command |awk 더보기
되기: 예
사용자 되기: a_user
메소드가 됨: sudo
대상 호스트에 연결된 Ansible_user는 대상 호스트에서 sudo -i를 수행할 수 없어야 하며 /etc/sudoers.conf에 "Ansible_user (ALL)=ALL NOPASSWD: ALL" 항목이 있어서는 안 됩니다.
a_user로 일부 명령(소스와 같은 bash 내장 포함)을 실행할 수 있기를 원합니다. Ansible이 다음과 같은 작업을 시도한다는 문서를 발견했습니다.
- Ansible_user로 로그인
- $Ansible_user sudo -u Commands_from_playbook 실행
그러나 플레이북을 실행하려고 하면 다음과 같은 결과가 나타납니다. module_stderr: 호스트_ip_here에 대한 공유 연결 close msg: MODULE FAILURE 특정 오류에 대해서는 stderr을 참조하세요.
작업이 "verbosity 3"으로 실행되지만 stderr은 표시되지 않습니다.
사용자에게 sudo -i 및/또는 sudoers의 ALL이 부여되면 스크립트가 예상대로 실행됩니다.
/etc/sudoers 항목은 무엇이어야 합니까? 어쩌면 Ansible_user ALL = (a_user) NOPASSWD: and_something_here (내장 기능의 경우/bin/bash?)와 같은 것을 사용해야 할 수도 있습니다.
어떤 팁이 있나요?