Linux
[foreman] 호스트 등록 ①
동린
2026. 1. 16. 01:18
각 관리대상서버에 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 웹에서 호스트를 등록 해보도록 하겠다.