원격 서버에 SSH 매개변수가 없으면 다음과 같이 정상적으로 작동합니다.
PermitRootLogin yes
내 작업 가능한 명령은 다음과 같습니다.
[ansible@myansible ~]$ ansible remoteserveur -a "cat /etc/sudoers"
PermitRootLogin no
보안상의 이유로 모든 서버의 SSH 매개변수를 변경하고 싶습니다. 이 작업을 완료하면 더 이상 작동하지 않습니다.
UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).",
"unreachable": true
내 ansible 사용자를 어떻게 만들 수 있습니까?일반 사용자그리고 아마도 통과루트로 명령 실행 가능.
많은 관심을 가져주셔서 감사합니다.
답변1
Ansible 플레이북에 "become:is" 지시문이 없는 것이 확실합니까? 이 지시어는 Ansible 에이전트에 대한 권한 있는 액세스를 담당합니다.
https://docs.ansible.com/ansible/latest/user_guide/become.html
답변2
Nicola에게 감사드립니다. 내 문제에 대한 훌륭한 해결책을 제공했습니다. 나는 결국 다음을 사용했습니다.
ansible-playbook permitrootlogin.yml -b -K
-b는 "되다"를 의미하고, -K는 "권한 업그레이드 비밀번호 요청"을 의미합니다.
TASK [Disallow root SSH access] ******************************************************************************************************************************************************
ok: [server1]
ok: [server2]