inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

구성 관리 자동화 도구 - 앤서블(Ansible)

자동으로 authorized_keys 등록하기

vm 양방향 authorized_keys 와 known_hosts 등록 질문입니다.

해결된 질문

439

WooSong Lee

작성한 질문수 1

0

강의 잘 보고 있습니다. 감사합니다. 

그런데 강의해주신대로 해서 server -> node 로 단방향은 ssh 접속이 잘 되는데요.. node -> server 도 ssh 접속이 그냥 되도록 authorized_keys 와 known_hosts 등록되는 방법이 있을까요?

양방향으로 node <-> server 되도록 authorized_keys 와 known_hosts 등록하는 앤서블 스크립트를 작성하는 방법이 궁금합니다...  

감사합니다.

ansible

답변 3

1

조훈(Hoon Jo)

안녕하세요 

현재 작성된 방법은 사용자가 known_hosts를 생성하는 방법과 authorized_keys을 코드화 했다고 보시면 됩니다. 

1. /usr/bin/ssh-keyscan -t ecdsa 를 통해서 known_hosts를 생성하고 이를  ~/.ssh/known_hosts 로컬에 저장 

2. ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa 를 통해서  authorized_keys를 생성하고 각 노드에 저장

따라서 노드에서 이걸 구현하려면...각 노드마다 앤서블 코어가 모두 설치되어서 #1번과 #2번이 실행되어야 하고 앤서블 호스트(/etc/ansible/hosts)가 구현되어 있어야 하는데요. 효율적일지 모르겠습니다. 

기본적으로 앤서블은 push 방식(서버에서 노드로 넣어줌) pull방식으로 구현도 가능하지만 어짜피 생성이후에 저장단계를 거치기 때문에 pull방식으로 구현한다고 해도 위의 방법에서 벗어나지 않을 것 같습니다. 

앤서블은 아시겠지만, agentless로 서버에서 노드로 넣어주는 구조이기 때문에 역 구조를 앤서블에서 고려할 필요가 없어서요. 다만 kubespray와 같이 모든 노드(서버,노드)가 cross로 인증이 모두 처리되어야 있어야 하는 경우에는 저는 bash로 작성해서 모든 노드에서 실행하여 처리하였습니다. (고민을..하기가 번거로워서 --;;;;)

모든 노드에서의 인증 처리를 아래와 같은 bash 코드를 참고해 보시면 좋을꺼 같네요.

#Auto_Pass 
#if you want to filter only ip then [grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}']

#make a directory 
mkdir ~/.ssh

#Read hosts from file 
readarray hosts < /etc/hosts

##1.known_hosts##
if [ ! -f ~/.ssh/known_hosts ]; then
  for host in ${hosts[@]}; do 
    ssh-keyscan -t ecdsa ${host} >> ~/.ssh/known_hosts
  done
fi

##2.authorized_keys
if [ ! -f ~/.ssh/id_rsa.pub ]; then
  ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N ''
    for host in ${hosts[@]}; do 
       sshpass -p vagrant ssh-copy-id -f ${host}
    done
fi

조훈 드림

0

조훈(Hoon Jo)

넵 도움이 되신거 같아서 다행이네요 ^^

조훈 드림. 

0

WooSong Lee

귀찮은 질문인데도 친절하고 빠른 답변 감사드립니다 ~~  나머지 강의도 잘 듣겠습니다

다른 강의들도 많이 부탁드려요~~

[해결] install nssm에서 넘어가질 않습니다.

1

82

1

윈도우 vagrant 유저랑 5985번 포트 질문

0

101

2

3강 CentOS 신규 다운로드 및 yum 레포 수정

1

77

1

앤서블 서버에 앤서블 코어의 환경 구성하기편 질문

0

91

2

스크립트 파일 공유 문의

0

100

2

ansible provison ansible-server 이후 ping tess오류입니다.

0

180

2

vagrant 로 nxosv 올리는 과정에서 질문이 있습니다.

0

103

2

anp nginx_install.yml -k 시 오류

1

103

1

vagrant up을 하면 vagrantfile에서 정의한 ip로 설정이 되지 않습니다.

0

156

3

ssh 연결 설정과 관련하여 현업에서는 어떻게 하는지 궁금합니다.

0

144

3

강의중 yum install이 안되신다면 봐주세요.

1

326

1

no working in time sync

0

307

2

윈도우서버 2012 vagrant 에러

0

521

3

vagrant 버전 혹시 몇버전으로 하시는지 알수 있을까요?

0

335

1

Packer와 Vagrant 중 현업에서 둘중 얼마나 더 많이 사용하는지 알고 싶습니다.

0

396

1

실습코드가 올려져 있나요.

0

379

1

ansible-server에 pywinrm 설치 시, 에러 발생하여 문의드립니다.

0

605

1

vagrant에서 config.vm.box에 지정한 값으로 실행되지 않습니다.

0

502

1

-e 옵션이란 무엇일까요?

0

310

1

vagrant 초기 구성 질문

1

482

4

최초 패스워드 입력 질문

1

268

1

좋은 강의 감사합니다

1

208

1

group['nodes']에 대해서 궁금한 점이 있습니다.

1

198

1

Auto_known_host.yml 에서 오류 발생합니다.

1

367

2