[foreman] 호스트 등록 ①

각 관리대상서버에 ansible 플레이북을 실행하거나

remote execution 을 하려면 서로 통신이 되어야 한다.

 

중앙관리서버에서 관리대상서버로 통신할 수 있도록 세팅을 한다.

 

이전 글과 같이 설치를 진행했다면 다음 경로에 public key 가 생성 되어있다.

~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub

 

이 키를 관리대상서버에 import 해주자.

여기서는 예시로 lieper 라는 계정으로 사용하기로 한다.

 

먼저 lieper 계정에 .ssh 디렉토리를 생성한다.

# mkdir -p /home/lieper/.ssh
# chmod 700 /home/lieper/.ssh
# chown lieper:lieper /home/lieper/.ssh

 

public key를 import 한다.

여기서는 예시로 ssh port 는 22222 를 사용하고, 관리대상서버 ip 는 10.10.20.1 로 한다.

# ssh-copy-id -p 22222 -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy.pub lieper@10.10.20.1

 

 

원격으로 자동화 할 작업이 대부분 root 권한이 필요한 sudo 명령어이기 때문에

lieper 계정을 sudoers 에 넣어줘야 한다.

그리고 암호를 입력하지 않고 해야 원격으로 작업이 되기 때문에 해당 설정을 추가한다.

# touch /etc/sudoers.d/lieper
# echo 'lieper ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/lieper >/dev/null
# chmod 440 /etc/sudoers.d/lieper

 

 

이제 key 를 통해 접속하고 sudo 로 명령어가 잘 실행 되는지 확인한다.

# sudo -u foreman-proxy ssh -o StrictHostKeyChecking=accept-new -p 21887 -i ~foreman-proxy/.ssh/id_rsa_foreman_proxy lieper@10.10.20.1 'sudo -n whoami && hostname'

foreman-porxy 라는 계정이 foreman 을 사용하는 서비스 계정이고

관리대상서버에 접속해서 sudo 로 whoami 와 hostname 명령어를 실행하는 테스트이다.

 

결과가 다음과 같이 나와야 한다.

lieper
설정한 관리대상서버의 hostname

 

정상적으로 출력됐다면 성공!

다음 포스팅에서 foreman 웹에서 호스트를 등록 해보도록 하겠다.