공부합시다!/Ansible
Ansible: ssh key 자동 배포 (2023년 1월 11일 Test)
간서치
2022. 7. 7. 10:04
728x90
Ansible은 ssh를 이용해서 통신을 합니다.
그럼 완전 자동화를 위해서는 ssh 통신에서 패스워드를 사용하는 방법을 지향하고
ssh를 암호화키를 생성해서 통신하는 방법이 훨 안전하고 편리합니다.
해당 방법은 일단 ssh-key를 생성 후 각 Node에 Authorized_key로 접속 대상의 사용자 홈디렉토리에 배포해야 합니다.
이 방법을 자동화 해보겠습니다.
1. ssh. yml 파일 생성
1.2. ssh.yml code
---
- name: ssh deploy
hosts: all
tasks:
- name: create key
connection: local
command: "ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ''"
ignore_errors: yes
run_once: true
- name: push key
authorized_key:
user: root
state: present
key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
#실행시 반드시 -u root -k 입력할 것.
localhost error 시 export ANSIBLE_HOST_KEY_CHECKING=False
2. # /etc/ansible/ansible.cfg
2.1. 반드시 host_key_check=false 로 설정해주셔야 합니다.
2.1.1. 작업 전 오류
2.1.2. 설정 변경
2.1.3. 변경 후 ssh.yml 실행 및 Test
ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ''
local에서 password를 사용하지 않고 RSA방식의 키 쌍을 만들어 내는 Code 입니다.
만들어내 Key쌍중 공개키를 id_rsa.pub를 각 node의 root사용자 권한으로 Authorized_key로 변경해서 배포하는 Code입니다.
Have a nice day!
728x90