본문 바로가기

IT/Linux

kickstart(centos6.5_x86_64) 쓰는중

참고자료 : http://blog.osti.kr/os/pxe-kickstart-server-%EA%B5%AC%EC%84%B1/


[kickstart 만들기]

작업환경 : CentOS 6.5(64bit)


1. centos 설치

http://mirror.oasis.onnetcorp.com/centos/6.5/isos/x86_64/ 에서

CentOS-6.5-x86_64-bin-DVD1.iso  다운로드


vmware에 설치

ip 설정 : 192.168.1.10(bridge 모드로 nic 선택)


2. yum repository 지정

cd의 미디어를 레포지터리로 지정(ip를 브릿지로하면 외부와 통신 안되서 yum이 안됨 그래서 cd에 있는 rpm들을 이용하여 설치)

mkdir /localrepo

cp -a /media/CeonOS_6.5_Final/* /var/www/html/CentOS6.5-x86_64/

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

vi /etc/yum.repos.d/base.repo

[base]

name=CentOS 6.5 Server

baseurl=file:///var/www/html/CentOS6.5-x86_64/

enabled=1

gpgcheck=0


yum repolist


3. kickstart 필요 패키지 설치

yum install -y dhcp tftp-server httpd syslinux system-config-kickstart vsftpd


4. tftp 설정

# mkdir -p /tftpboot/CentOS6.5-x86_64

# cp /var/www/html/CentOS6.5-x86_64/initrd.img /tftpboot/CentOS6.5-x86_64

# cp //var/www/html/CentOS6.5-x86_64/vmlinuz /tftpboot/CentOS6.5-x86_64

# cp /usr/share/syslinux/menu.c32 /tftpboot  

# cp /usr/share/syslinux/vesamenu.c32 /tftpboot 

# cp /usr/share/syslinux/pxelinux.0 /tftpboot


5. dhcp 설정

# vi /etc/dhcp/dhcpd.conf

allow bootp;

allow booting;

max-lease-time 60;

default-lease-time 60;

ddns-update-style none;

option domain-name-servers 168.126.63.1, 168.126.63.2;

 

class "PXE" {

     match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";

     next-server 192.168.1.10;   # Kick start 서버 ip

     filename "pxelinux.0";

}

subnet 192.168.1.0 netmask 255.255.255.0 {

 

     option broadcast-address 192.168.1.255;

     #option routers 192.168.1.1; # gateway 지정. 외부망 연결이 필요 없다면 없어도 되고, 만약 라우터의 dhcp 서버가 on 이면 충돌이 나므로 지정하지 않거나 router의 dhcp server를 off로 하고 지정한다.

     option subnet-mask 255.255.255.0;

     range dynamic-bootp 192.168.1.2 192.168.1.99; # kickstart OS 설치 때 부여받는 dhcp ip 영역

     default-lease-time 21600;

     max-lease-time 43200;

 

     pool {

           allow members of "PXE";

           range 192.168.1.200 192.168.1.240;   # pxe dhcp ip 영역

     }

}


6. xinetd 설정

tftpd는 xinetd 아래서 운영되면 아래 파일을 수정해주어야 한다


# vi /etc/xinetd.d/tftp

disable           = no

server_args       = -s /tftpboot   # tftp 관련 파일들이 있는 디렉토리


7. vsftpd 설정

vsftp는 굳이 필요 없지만 iso 파일 등 대용량 파일을 window 등으로 넘길때 유용하여 설치

root로 접속할 수 있게 설정

# vi /etc/vsftpd/ftpusers

#root # root도 접근 가능하게 주석 처리


8. 메뉴 구성

PXE 부팅 후 보이게되는 메뉴를 구성

# mkdir /tftpboot/pxelinux.cfg

# vi /tftpboot/pxelinux.cfg/default

timeout 50

menu title ####  OS Installer Boot Menu  ####

 

 

label Redhat6.5

  kernel CentOS6.5-x86_64/vmlinuz

  append ksdevice=link load_ramdisk=1 initrd=CentOS6.5-x86_64/initrd.img network ks=http://192.168.1.10/ks/ks_1.cfg


- timeout 50 : 5초간 부트 메뉴를 띄워준다. 메뉴를 건드리지 않으면 5초 이후에는 label 0 메뉴로 부팅이 된다.


- label 0 : 0번 메뉴가 기본 선택 - 따라서 Boot local hard drive 가 기본으로 선택된다.


- kernel redhat6.5/vmlinuz : /tftpboot/redhat6.5/vmlinuz 파일이다.


- initrd=redhat6.5/initrd.img : /tftpboot/redhat6.5/initrd.img 파일이다.


- ksdevice=link : NIC의 링크가 살아있는 장치로부터 cfg 파일을 받는다.


9. 서비스 기동

# chkconfig dhcpd on

# service dhcpd start


# chkconfig httpd on

# service httpd start


# chkconfig xinetd on

# chkconfig tftp on

# service xinetd start


##### dhcp를 처음 기동하면 /var/lib/dhcp/dhcpd.leases 파일이 없어 구동에 실패할 것이다. 

이 파일은 DHCP 클라이언트 할당 데이터베이스를 저장하고 있는데 이 파일을 직접 수정하면 안된다.

최근에 할당된 개별 IP 주소에 대한 DHCP 할당 정보는 자동적으로 할당 데이터베이스에 저장됩니다

이 정보에는 할당 기간, IP 주소가 부여된 클라이언트, 할당이 시작되고 끝나는 날짜 그리고 할당받기 위하여 사용된 네트워크 인터페이스 카드의 MAC 주소가 포함되어 있습니다.

touch /var/lib/dhcp/dhcpd.leases 명령을 사용하여 파일을 생성하시기 바랍니다.


10. 킥스타트 파일 작성

# system-config-kickstart 명령을 실행하여 gui화면으로 설정