Ansible은 remote 서버로의 명령어 실행 시 key를 통해 접속을 시도할 경우 ~/.ssh/authorized_keys 디렉토리에 public key를 배포해야 한다.
아래 페이지는 https://medium.com/@visualskyrim/ansible-playbook-deploy-the-public-key-to-remote-hosts-da3f3b4b5481 에서 발췌
Manual 수동 배포
- cd ~
- ssh-copy-id ansibleUSER@remoteServer
확인
- cd .ssh
- cat known_hosts
정상적으로 배포되었다면 ~/.ssh/known_hosts에 원격 서버 정보가 등록된다.
Ansible Playbook으로 배포하는 방법
실행 (1회 비밀번호 타이핑 필요)
ansible-playbook -i <인벤토리파일> deploy_authorized_keys.yml --extra-vars='pubkey="cat /home/계정명/.ssh/id_rsa.pub"' -u 계정명 -k
처음으로 ssh를 접속할 때 RSA key fingerprint를 설정할 지 묻는다. 하지만 ask-pass 를 명시하면 에러가 발생한다.
따라서 SSH 인증 체크를 ansible.cfg에서 비활성화 하여 실행한다. (하지만 저 옵션이 말을 안들어서 그냥 playbook 실행 할 때 --ask-pass 옵션을 빼고 실행했음)
완료되면 Remote 서버의 해당 계정 home/계정명/.ssh/에 authorized_keys 파일 생성 및 home 디렉토리에 .ansible 디렉토리가 생성된다.
'Devops > Ansible' 카테고리의 다른 글
병렬 백업과 복원을 위한 async 작업 (0) | 2022.08.30 |
---|---|
MSSQL 별칭 관리 (0) | 2022.08.30 |
[Ansible] SQL Server Uninstall (0) | 2019.10.11 |
Windows에서 Ansible 사용하기 (0) | 2019.06.25 |
Ansible Roles (0) | 2019.04.12 |