기존 서버 그룹을 관리 하기 위해 ansible 을 사용하고 싶습니다 . ansible_hosts
파일 을 만들고 -K
단일 호스트 만 대상으로하는 명령을 사용하여 옵션 으로 성공적으로 테스트했습니다.
ansible -i ansible_hosts host1 --sudo -K # + commands ...
내 문제는 각 호스트의 사용자 비밀번호가 다르지만 Ansible에서이를 처리하는 방법을 찾을 수 없다는 것입니다.
을 사용하면 -K
단일 sudo 비밀번호를 입력하라는 메시지가 표시되며 프롬프트가 표시되지 않는 모든 후속 호스트에 대해 시도되는 것 같습니다.
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
지금까지 조사 :
하나의 오답 ( "use ")과 저자가 "암호없는 sudo가 필요하다는 것을 알았습니다"라는 응답이 있는 StackOverflow 질문
-K
"암호가없는 sudo를 사용하면 작업을보다 쉽게 자동화 할 수 있지만 필수는 아닙니다 ." 라는 Ansible docs (강조 광산)
이 보안 StackExchange 질문
NOPASSWD
은 필요한 것으로 읽습니다."확장 가능하고 이해하기 쉬운 프로비저닝 ..." 기사 :
"sudo를 실행하려면 암호를 입력해야 할 수 있습니다. 이는 Ansible을 영원히 차단하는 확실한 방법입니다. 간단한 수정은 대상 호스트에서 visudo를 실행하고 사용자가 Ansible에서 로그인 할 때 암호를 입력 할 필요가 없도록하는 것입니다."
기사 "기본 Ansible 플레이 북" 말한다,
"Ansible은 루트로 대상 서버에 로그인하여 sudo를 필요로하지 않거나, asible 사용자가 암호없이 sudo를 갖도록 할 수 있지만, 그렇게하는 생각은 내 비장이 협곡을 도약하고 내 관을 막을 수있는 위협이됩니다. 하지마 "
내 생각은 정확하지만 단일 서버 이상으로 확장하는 방법은 무엇입니까?
ansible issue # 1227 , "Ansible은 Playbook의 모든 사용자에게 sudo 암호를 요청해야합니다."는 1 년 전에 mpdehaan에 의해 "이것에 대한 많은 수요를 보지 못했지만 대부분의 사람들이 하나에서 sudoing하고 있다고 생각합니다. 사용자 계정 또는 대부분의 키 사용 "
그렇다면 ... 이런 상황에서 사람들은 Ansible을 어떻게 사용하고 있습니까? 에서 설정 NOPASSWD
하고 /etc/sudoers
호스트에서 비밀번호를 재사용하거나 루트 SSH 로그인을 사용하면 보안이 크게 저하되는 것처럼 보입니다.
sudo
(여전히 비밀번호가 필요합니다).
ansible_ssh_password
설정은 SSH 비밀번호에만 적용됩니다 (단서 이름은 ...). & 나는 이미 키 기반 SSH 로그인을 사용하고 있습니다.