[foreman] 구축 배경 및 설치
처음 운영 업무를 시작했을 때...
회사에 설치된 모든 서버의 주요 서비스 계정 + root 계정의 암호를 변경하는 임무를 받았다.
분기에 1회하는 작업인데 당시에는 200대 정도 되는 서버의
계정 암호를 모두 직접 접속해서 하나씩 바꾸고,
만약 잘못 변경하거나 실수하면 IDC 가서 다시 계정 바꾸고 하는 등...
아주 말도 안되는 일을 했었다.
그러다가 접근제어 솔루션을 도입하게 되면서
계정을 일괄로 암호 변경 할 수 있게 되어 일이 아주 편해졌다.
다만, 개발서버는 라이선스 이슈와(비용 절감) 개발팀에서 게발/검수 서버까지
접근제어 통해서 접속하면 너무 힘들다고 해서 대상 장비에서 빠지게 되었다.
그래서 몇 대 안되니까 그냥 수동으로 하고 있었는데...
이렇게 평생 살 수는 없을 거 같아서 ansible 을 활용해서
일명 '딸깍' 업무로 만들고자 한다.
ansible을 그냥 순수하게 사용해도 되는데 foreman 이라는 툴을 활용하면
웹 콘솔로 할 수 있고, ansible 말고 다른 플러그인 설치해서
서버 관리 부분을 더 확장할 수 있다고 하여 foreman 을 설치하기로 하였다.
OS : Rocky Linux 9
foreman 을 설치할 중앙관리서버는 반드시 hoistname 이 FQDN 이여야 한다.
foreman.donglin.kr 로 만들도록 하겠다.
이제 foreman.donglin.kr 을 해석할 수 있도록 DNS 등록을 해야하는데
내부관리용 서버니까 굳이 DNS 등록은 하지 않고 hosts 에 등록해서 사용하였다.
이제 설치를 시작한다.
설치 하기 전에 미리 이야기 하자면, 앞으로 블로그에 작성되는 대부분의 설치는
rpm 패키지 즉 dnf 를 활용하여 설치한다.
ISMS 최초 인증심사 받을 때,
소프웨어의 버전 관리를 위해서 dnf를 활용하여 설치하라는 권고를 받아서
업무할 때도 가급적이면 dnf 로 설치 하고 있다.
# dnf clean all
# dnf install -y https://yum.theforeman.org/releases/3.17/el9/x86_64/foreman-release.rpm
# dnf install -y https://yum.theforeman.org/katello/4.19/katello/el9/x86_64/katello-repos-latest.rpm
# dnf install -y https://yum.puppet.com/puppet8-release-el-9.noarch.rpm
# dnf upgrade -y
# dnf install -y foreman-installer-katello
# foreman-installer --scenario katello \
--foreman-initial-organization "MyOrg" \
--foreman-initial-location "SeoulDC" \
--foreman-initial-admin-username "admin" \
--foreman-initial-admin-password "Pas$W0rd"
katello 는 각 관리대상서버에 설치된 패키지들을 관리할 수 있다고 하는데
당장 사용하지는 않고 일단 '딸깍'화 할 작업들을 먼저 하고 나중에 진행하겠다.
foreman 을 설치 할 때 hostname 이 FQDN 으로 되어있지 않으면 설치가 안된다.
그냥 hostname 으로 DNS 를 찾아서 인증(?)하는 절차가 있어서
반드시 알맞게 지정되어있어야 한다.
이번 작업에서 메인으로 사용할
ansible 과 remote-execution 플러그인을 설치한다.
# dnf -y clean all
반드시 clean all 을 하자.
왜인지 모르겠지만 dnf clean 을 안하면 설치 중간에 에러가 난다.
# foreman-installer \
--enable-foreman-plugin-ansible \
--enable-foreman-proxy-plugin-ansible
# foreman-installer \
--enable-foreman-plugin-remote-execution \
--enable-foreman-plugin-remote-execution-cockpit \
--enable-foreman-proxy-plugin-remote-execution-script
접속을 위해 방화벽을 열어준다.
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port port="80" protocol="tcp" accpet'
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port port="443" protocol="tcp" accpet'
# firewall-cmd --reload
웹브라우저를 통해 접속 되는지 확인한다.

요렇게 설치 후 접속이 잘 되는 것을 볼 수 있다.