안녕하세요! 시공의 폭풍(클라우드) 속으로! 강시공 입니다.😊
1탄 Ansible 설치에 이어서 이번 포스트는! root 로그인이 불가 환경에서 Ansible 제어 방법입니다.
공공기관이나, 보안을 중시하는 고객들은 /etc/ssh/sshd_config 파일 내용에 PermitRootLogin no 로 설정하고 사용합니다.
그러면, 아래와 같이 에러가 발생하는데요 Ansible 사용을 포기해야하는 걸까요? 😣이번 포스트에서 root 로그인이 불가할 때 사용할 수 있는 유용한 방법에 대해 포스트해 드리겠습니다.
root 로그인이 불가한 경우에 서버 내부에 분명히 sudo 권한 상승을 가지고 있는 계정이 있을 겁니다.
저희는 그 계정을 이용해서, 사용자 권한을 root 급으로 에스컬레이션 시켜줄겁니다!
* ansible에서는 --become 옵션으로 일반 사용자 권한을 sudo 진행시켜주는 옵션을 명령을 제공합니다.
[타겟 서버 작업 입니다.]
1. /etc/sudoers 파일에 일반 사용자 sudo 권한 허용이 되어있는지 확인해 주세요.
저 같은 경우는 kang 계정을 주었습니다.
* sudo 명령어의 그룹 권한을 wheel로 해주고,
wheel 그룹에 kang 추가해줘도 됩니다.
* sudoers 파일에 kang 유저가 sudo 진행 시 아래와 같이 패스워드를 묻지 않도록 해주세요.
2. ssh 서비스를 재시작해 주세요.
# systemctl restart sshd
[관리 서버 작업입니다.]
우선 ansible.cfg 파일에 become 관련 작업을 해주는 이유는,
물론, 설정 안 해도 됩니다. 설정 안하면, 명령어 옵션에 -b를 계속 입력해 줘야 합니다.
매우 번거롭기 때문에, 저희는 /etc/ansible/ansible.cfg 파일에 에스컬레이션 관련 설정을 해서
명령어 옵션을 주지 않도록 할 겁니다.
1. 관리 서버에서 아래 명령어로 대상 서버와의 키 교환을 합니다.
# ssh-copy-id kang@서버주소
2. ansible.cfg 수정
'''
remote_user = kang
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
'''
3. 정상적으로 ansible 진행되는지 확인
'Infra Structure As a Code > Ansible' 카테고리의 다른 글
Ansible 배워보기 3탄 (Ansible Playbook 개념) - 작성 중 (0) | 2023.10.17 |
---|---|
Ansible 배워보기 1탄 (Ansible 설치 및 기본 명령어 배워보기) (0) | 2023.10.16 |