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 를 설정해야 제대로 설치가 진행된다.

set-repos.sh
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 포트를 열어야 한다.

ProtocolPort용도비고
TCP80Spacewalk web interface
443Spacewalk web interface(SSL)
4545Red Hat Network Monitoring Daemon (rhnmd)
5222push actions to client machine
5269 push actions to spacewalk proxy
UDP69tftp (PXE provisioning)


  1. vi /etc/sysconfig/iptables
  2. 다음 내용 추가

    -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
  3. service iptables restart


 

Configuring the tftpd

PXE 로 Provisioning 을 한다면 tftp 가 활성화되어 있어야 한다. 

  1. yum install tftp-server
  2. chkconfig xinetd on
  3. vi /etc/xinetd.d/tftp
    1. disable = yes 를 disable = yes 로 변경
  4. service xinetd restart
  5. 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

  1. 설정할게 많으므로 answer 파일 생성
    1. vi answer.txt
    2. 아래 내용을 붙여넣기 하고 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

      (warning) 실수로 잘못된 answer.txt 로 설정되었을 경우 다음 명령어로 db 를 삭제하고 새로 설정한다.

    3. spacewalk-setup-postgresql remove --db spaceschema --user spaceuser
  2. spacewalk-setup --disconnected --answer-file=answer.txt    
  3. 정상적으로 설정이 완료되었다면 https://serverip 로 연결하여 최초 관리자 계정을 생성한다.

SpaceWalk 제어 

연관된 서비스가 많으므로 다음 명령어로 spacewalk 서비스를 시작/종료/재구동 한다.

  1. /usr/sbin/spacewalk-service [stop|start|restart]


Client Configuration

RHEL6/CentOS6
  1. rpm -Uvh http://yum.spacewalkproject.org/2.0-client/RHEL/6/x86_64/spacewalk-client-repo-2.0-3.el6.noarch.rpm
  2. EPEL Repository 를 설치한다. (RHEL/CentOS 5,6 에 EPEL 과 Remi/WebTatic Repository 설치하기 참고)
  3. Install client packages
    1.  yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
  4. Register your CentOS or Red Hat Enterprise Linux system to Spacewalk using the activation key you created earlier
    1. 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

  1. /usr/share/rhn
  2. wget http://YourSpacewalk.example.org/pub/RHN-ORG-TRUSTED-SSL-CERT

Ref