RHEL/CentOS 에 SpaceWalk 설치 & 운영
SpaceWalk 프로젝트는 중단되었고 이 제품의 대체제는 https://www.comparitech.com/net-admin/best-linux-patch-management-tools/ 를 참고하세요.
개요
Spacewalk 는 Red Hat Network Satellite Server의 Open Source 버전이다. Fedora 와 Red Hat, 또는 JBoss Community 와 JBoss Enterprise 와 비슷하다고 볼수 있다. Red Hat Satellite 는 remote 에 있는 RHEL 서버를 관리하는 역할을 수행한다.
system 의 상태를 볼 수 있고 patch 를 수행하거나 rebooting 을 수행할 수 있으며 Provisioning 기능을 이용하면 베어 메탈 장비에 RHEL 을 설치할 수도 있다. RHEL 의 subscription 을 등록해서 Red Hat Customer Portal 에 연결해 봤다면
Subscription -> CLASSIC SUBSCRIPTION MANAGEMENT 를 선택하면 나오는 웹 관리 콘솔이 비슷한 역할을 수행한다고 볼 수 있다.
설치
Setting up Spacewalk repo
RHEL5/CentOS 5
rpm -Uvh http://yum.spacewalkproject.org/2.0/RHEL/5/x86_64/spacewalk-repo-2.0-3.el5.noarch.rpm
RHEL6/CentOS 6
rpm -Uvh http://yum.spacewalkproject.org/2.0/RHEL/6/x86_64/spacewalk-repo-2.0-3.el6.noarch.rpm
Pre-Requisite
JDK 설치
1.6 이상의 JDK 가 필요하므로 openjdk 1.6 설치
yum install java-1.6.0-openjdk
Database Backend 설치
yum install spacewalk-setup-postgresql
JPackage repository
dependency 가 걸린 외부 java library 가 많으므로 java lib 을 다운받을 JPackage repository 를 설정해야 제대로 설치가 진행된다.
cat > /etc/yum.repos.d/jpackage-generic.repo << EOF [jpackage-generic] name=JPackage generic #baseurl=http://mirrors.dotsrc.org/pub/jpackage/5.0/generic/free/ mirrorlist=http://www.jpackage.org/mirrorlist.php?dist=generic&type=free&release=5.0 enabled=1 gpgcheck=1 gpgkey=http://www.jpackage.org/jpackage.asc EOF
EPEL Repository
EPEL Repository 를 설치한다. (RHEL/CentOS 5,6 에 EPEL 과 Remi/WebTatic Repository 설치하기 참고)
Install
꽤 많은 패키지가 설치된다.
yum install spacewalk-postgresql
Configuring the firewall
iptables 에서 다음 inbound 포트를 열어야 한다.
Protocol | Port | 용도 | 비고 |
---|---|---|---|
TCP | 80 | Spacewalk web interface | |
443 | Spacewalk web interface(SSL) | ||
4545 | Red Hat Network Monitoring Daemon (rhnmd) | ||
5222 | push actions to client machine | ||
5269 | push actions to spacewalk proxy | ||
UDP | 69 | tftp (PXE provisioning) |
vi /etc/sysconfig/iptables
다음 내용 추가
-A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 4545 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5222 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 5269 -j ACCEPT
service iptables restart
Configuring the tftpd
PXE 로 Provisioning 을 한다면 tftp 가 활성화되어 있어야 한다.
- yum install tftp-server
- chkconfig xinetd on
- vi /etc/xinetd.d/tftp
- disable = yes 를 disable = yes 로 변경
- disable = yes 를 disable = yes 로 변경
- service xinetd restart
lsof -i UDP:tftp 실행해서 PORT 가 사용중인지 확인
root@localhost:~:> lsof -i UDP:tftp COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME xinetd 1925 root 5u IPv4 13706 0t0 UDP *:tftp
Configuring Spacewalk
설정할게 많으므로 answer 파일 생성
- vi answer.txt
아래 내용을 붙여넣기 하고 db-host=localhost 부분을 실제 서버의 domain name이나 IP로 수정해 준다.
admin-email = root@localhost
ssl-set-org = Spacewalk Org
ssl-set-org-unit = spacewalk
ssl-set-city = My City
ssl-set-state = My State
ssl-set-country = US
ssl-password = spacewalk
ssl-set-email = root@localhost
ssl-config-sslvhost = Y
db-backend=postgresql
db-name=spaceschema
db-user=spaceuser
db-password=spacepw
db-host=localhost
db-port=5432
enable-tftp=Y실수로 잘못된 answer.txt 로 설정되었을 경우 다음 명령어로 db 를 삭제하고 새로 설정한다.
- spacewalk-setup-postgresql remove --db spaceschema --user spaceuser
- spacewalk-setup --disconnected --answer-file=answer.txt
- 정상적으로 설정이 완료되었다면 https://serverip 로 연결하여 최초 관리자 계정을 생성한다.
SpaceWalk 제어
연관된 서비스가 많으므로 다음 명령어로 spacewalk 서비스를 시작/종료/재구동 한다.
- /usr/sbin/spacewalk-service [stop|start|restart]
Client Configuration
RHEL6/CentOS6
- rpm -Uvh http://yum.spacewalkproject.org/2.0-client/RHEL/6/x86_64/spacewalk-client-repo-2.0-3.el6.noarch.rpm
- EPEL Repository 를 설치한다. (RHEL/CentOS 5,6 에 EPEL 과 Remi/WebTatic Repository 설치하기 참고)
- Install client packages
- yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
- Register your CentOS or Red Hat Enterprise Linux system to Spacewalk using the activation key you created earlier
- rhnreg_ks --serverUrl=http://YourSpacewalk.example.org/XMLRPC --activationkey=<key-with-rhel-custom-channel>
TroubleShooting
ERROR: can not find RHNS CA file: /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
- /usr/share/rhn
- wget http://YourSpacewalk.example.org/pub/RHN-ORG-TRUSTED-SSL-CERT