Devops/Ansible

Ansible : Public Key 자동 배포

BabyTT 2019. 4. 12. 14:09

Ansible은 remote 서버로의 명령어 실행 시 key를 통해 접속을 시도할 경우 ~/.ssh/authorized_keys 디렉토리에 public key를 배포해야 한다.

아래 페이지는 https://medium.com/@visualskyrim/ansible-playbook-deploy-the-public-key-to-remote-hosts-da3f3b4b5481 에서 발췌

Manual 수동 배포

  1. cd ~
  2. ssh-copy-id ansibleUSER@remoteServer

확인

  1. cd .ssh
  2. cat known_hosts

정상적으로 배포되었다면 ~/.ssh/known_hosts에 원격 서버 정보가 등록된다.

 

 

Ansible Playbook으로 배포하는 방법

출처 : https://medium.com/@visualskyrim/ansible-playbook-deploy-the-public-key-to-remote-hosts-da3f3b4b5481

 

실행 (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