더북(TheBook)

초보 시스템 관리자의 일기 | 자동 설치 문제 해결하기

속상하고 짜증나는 일이었지만 어쨌든 짧은 시간 내 우분투 시스템 서른 대를 준비하는 데 성공했다. 네트워크 대역폭만 충분하다면 더 많은 시스템을 동시에 설치할 수 있을 것 같다. 시간과 노력을 줄일 수 있는 효율적인 솔루션이라고 생각한다.

설치 과정에서 몇 가지 발생한 문제를 해결하느라 애를 먹었다. 스스로 해결한 문제도 있지만 선배의 도움이 없었다면 포기했지 않았을까? 고마운 선배님께 맥주 한 잔 사고 밤늦게 쓰는 일기라 정신을 집중하기가 쉽지 않다.

자동 설치가 시작되지 않는 문제의 원인은 DHCP 서버 또는 TFTP 서버, 웹 서버가 정상적으로 동작하지 않기 때문일 것이다. 자동 설치 전 과정을 이해하면 문제의 원인을 파악하는 데 도움이 된다. 하나씩 점검하면서 필요한 패키지가 제대로 설치되었는지, 설정 파일은 바르게 수정했는지, 각 서버 데몬은 정상적으로 동작하는지, 방화벽이 접근을 차단하지는 않는지 확인해야 한다.

이를 테면 다음은 TFTP 서버의 위치는 알고 있는데 네트워크 부팅과 관련된 파일이 존재하지 않아 설치 프로그램을 시작하지 못할 때 볼 수 있는 화면이다. 문제를 해결하려면 DHCP 서버 설정 파일, TFTP 서버의 상태, TFTP 서버가 제공하는 네트워크 부팅 이미지 설정 파일 등을 동시에 확인해야 한다.

그림 9-11 네트워크 부팅 관련 파일이 존재하지 않음!!

설치 대상 클라이언트는 DHCP 서버에서 IP 주소 정보를 받아오고 네트워크 부팅에 필요한 정보를 받아와야 한다. DHCP 서버 설정 파일 /etc/dhcp/dhcpd.conf 내용도 확인해야 한다. 설정 내용에 문제가 없어도 DHCP 서버 데몬이 동작하고 있지 않다면 무용지물이다. 67번 포트의 방화벽이 막혀 있는지 살펴보고 netstat 명령으로 확인 결과 접속 대기 상태가 아니라면 DHCP 서비스를 재시작한다.

설치 대상 클라이언트는 TFTP 서버에서 네트워크 부팅에 필요한 이미지를 받아와서 설치 프로그램을 시작한다. 네트워크 부팅 메뉴 설정 파일인 /var/lib/tftpboot/ubuntu-installer/i386/boot-screens/txt.cfg에 호스트의 웹 서버가 제공하는 미리 설정 파일을 읽을 수 있도록 알맞은 경로를 입력해야 한다. TFTP 서버 데몬의 동작 상태를 확인하고 69번 포트의 방화벽 설정 상태를 점검해야 한다.

마지막으로 클라이언트는 웹 서버가 제공하는 미리 설정 파일을 받아와서 자동 설치를 시작한다. 미리 설정 파일 /var/www/preseed.cfg가 이상이 없는지 확인하고 웹 브라우저를 통해서 확인 가능한지도 점검한다. 웹 서버가 사용하는 80번 포트의 접속 대기 여부, 방화벽 상태를 점검해야 한다.

설치 과정에서 문제가 발생하면 Alt+F4를 눌러 보자. 텍스트 환경으로 전환하며 시스템이 지금 무엇을 하고 있는지 실시간으로 메시지를 뿌려대는데 이렇게 해서 문제의 원인을 찾아낼 수 있다. 다시 원래 화면으로 돌아오려면 Alt+F6을 누르면 된다.

실제로 우분투 12.04LTS를 가지고 시스템 자동 설치를 진행하는 도중 멈춰버리는 문제가 발생한 적이 있다. 텍스트 환경에서 찾은 단서를 가지고 검색해본 결과 우분투 12.04LTS의 네트워크 부팅 이미지에 존재하는 버그가 원인이었다.

가끔 우분투 패키지 저장소에 문제가 발생하면 패키지를 받아오지 못해 설치에 실패하는 경우가 있다.

그림 9-12 패키지 저장소 문제로 인한 설치 실패

이럴 때는 다른 패키지 저장소를 사용해야 한다. 미리 설정 파일 /var/www/preseed.cfg의 mirror에서 다른 패키지 저장소 주소를 입력한다. archive.ubuntu.com은 기본 패키지 저장소로 다소 느리지만 안정적으로 패키지를 제공한다.

d-i mirror/protocol string http
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string

시스템 사양만 허락한다면 얼마든지 그래픽 환경을 제공하는 우분투 데스크탑을 설치할 수 있다. 미리 설정 파일에서 일부 내용만 수정하면 된다. 먼저 설치할 패키지 그룹을 결정하는 tasksel에서 firstubuntu-server가 아닌 ubuntu-desktop으로 입력한다.

tasksel/first multiselect ubuntu-desktop

한 가지 더, 한글화된 데스크탑 환경을 고려한다면 로케일 설정도 영문( en_US)이 아닌 우리 말( ko_KR.UTF-8)로 바꿔줘야 한다.

d-i debian-installer/locale string ko_KR.UTF-8

사실 이 외에도 미리 설정 파일을 이용한 시스템 자동 설치 과정에서 발생할 수 있는 문제는 수도 없이 다양하다. 시스템 관리자의 실수, 소프트웨어적인 버그를 비롯해서 시스템 사양, 네트워크 상태와 같이 시스템을 설치하는 물리적인 환경도 각각 다르기 때문이다. 일반 사용자야 이게 안 된다, 저게 안 된다 불평할 수 있겠지만 ‘시스템 관리자에게 상의하십시오’라는 오류 메시지를 보고 있는 시스템 관리자를 도울 수 있는 사람은 자기 자신 뿐이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.