본문으로 바로가기

Day-38 PXE & Kickstart (미완)

category Linux 2017. 2. 2. 11:59

PXE (Pre-boot eXecution Environment) - 사전 부팅 실행 환경
- 네트워크 인터페이스를 통해 컴퓨터를 부팅하는 환경
- Kickstart 자주 사용되며, 많은 서버에 동시에 OS설치 시 유용
- 비용 및 인력낭비가 줄어든다.

 

TFTP란
- TFTP (Trivial File Transfer Protocol)란 이더넷을 이용하여 파일을 전송하는 프로토콜
- UDP방식을 사용, FTP와 비슷한 파일전송 프로토콜이지만 매우 간단한 프로토콜로 구성되어있으므로
  부트로더와 같은 작은 크기의 프로그램 전송용으로 사용된다.
- 보통 네트워크 부팅 환경 구성 시 사용된다.

 

SYSLINUX
- Linux 운영체제용 부트 로더
- Linux 설치과정을 단순화 하여 부팅 디스크등에 사용되는 파일의 모음

 

Server-B (PXE Server) <---> Test-Server (PXE Client)

 

Test-Server 추가

 

Server-B
#yum -y install syslinux tftp-server vsftpd dhcp

 

syslinux : 부트 메뉴 구성을 위한 파일 및 부팅시 사용되는 파일을 제공

 

tftp-server : pxe 부팅 직후 os를 설치할 시스템에 리눅스 커널이미지 전송시 사용

 

vsftpd : Kickstart 파일, OS설치 파일 전송 시 사용

 

dhcp : PXE 부팅 시 IP부여, Kickstart 설치 시 IP 부여

 

TFTP 활성화
#vi /etc/xinetd.d/tftp
disable        = yes     --->     disable     = no

 

CD 이미지 마운트
#mount -t iso9660 /dev/cdrom /mnt                             // 이미지 마운트
#mkdir -p /var/ftp/centos/6.8/os/x86_64                   // 이미지 파일 저장 디렉토리 생성
#cp -R /mnt/* /var/ftp/centos/6.8/os/x86_64            // 이미지 파일 전부 복사
로컬 레포지토리를 만들에 네트워크 부팅(PXE)으로 부트로더를 탑재한 시스템은 필요한 파일을 FTP를 통해서 내려 받는다.

 

부트로더를 TFTP 배포 디렉토리로 복사
#cd /usr/share/syslinux/                         // 부트 로더 파일    
#cp pxelinux.0 /var/lib/tftpboot/            // 설치 메뉴 구성 파일
#cp menu.c32 /var/lib/tftpboot/             // 리눅스 설치 시 필요한 필수 파일
#cp memdisk /var/lib/tftpboot/
#cp mboot.c32 /var/lib/tftpboot/
#cp chain.c32 /var/lib/tftpboot/

 

커널이미지 복사
#mkdir -p /var/lib/tftpboot/images/centos/6.8/os/x86_64/images/pxeboot
#cp /var/ftp/centos/6.8/os/x86_64/images/pxeboot/* /var/lib/tftpboot/images/centos/6.8/os/x86_64/images/pxeboot/
cp: overwrite `/var/lib/tftpboot/images/centos/6.8/os/x86_64/images/pxeboot/TRANS.TBL'? y
# cd /var/ftp/centos/6.8/os/x86_64/images/pxeboot/
# ls
TRANS.TBL  initrd.img  vmlinuz

 

#mkdir /var/lib/tftpboot/pxelinux.cfg
#vi /var/lib/tftpboot/pxelinux.cfg/default

 

default menu.c32


prompt 0
timeout 300
ontimeout local

 

label local
menu label ^0) Boot Local Hard Drive
localboot 0

 

label CentOS 6.8 64bit from Local Repository
 menu label ^1) Install CentOS 6.8 From Server-B (VSFTP)
 kernel images/centos/6.8/os/x86_64/images/pxeboot/vmlinuz append initrd=images/centos/6.8/os/x86_64/images/pxeboot/initrd.img repo=ftp://100.100.100.120/centos/6.8/os/x86_64 devfs=nomount ip=dhcp

 
devfs=nomount                  // 장치파일을 마운트 하지 않는다.
                                              설치 도중에 다른 장치들이 연결되어 설치가 원활히 되지 않은 경우를 방지 하는 옵션

 

 

 


DHCP 설정

 

Server-A

 

#vi /etc/dhcp/dhcpd.conf

 

 

 

 

#service dhcpd restart
#service xinetd restart
#service vsftpd restart


1. pxe dhcp 서버로 부터 ip를 할당 받는다
2. tftp를 통해 /etc/dhcp/dhcpd.conf에 명시된 대로 pxelinux.0 파일을 다운받고
3. default 파일의 내용대로 선택 메뉴 실행
4. /var/lib/tftpboot/images/centos/6.8/os/x86_64/images/pxeboot 디렉토리
    안에 있는 initrd.img, vmlinuz 파일을 받아 압축을 풀어 부팅 진행
5. /var/lib/tftpboot/pxlinux.cfg/default 파일 설정 값을 확인 

 

#service iptables stop
#setenforce 0


vm -> edit -> Virtual network Editor -> DHCP 끄기

 

Server-B

 

스냅샷을 이용해 초기상태로 되돌린다.

 

#yum -y install tftp-server


#mkdir -p /ks/tftpboot/{kickstart,pxelinux.cfg,centos6.8}


#vi /etc/xinetd.d/tftp

 

 server_arg = -s /ks/tftpboot
 disalbe = yes  --> disalbe = no

 

#yum -y install syslinux dhcp


#vi /etc/dhcp/dhcpd.conf

 

 

 


#service dhcpd restart    


#mount -t iso9660 /dev/cdrom /mnt         //OS 설치에 필요한 ISO 마운트

 

#yum -y install nfs-utils                              //nfs 설치

 

#vi /etc/exports

/mnt 100.100.100.0/24(ro)
/ks/tftpboot/kickstart 100.100.100.0/24(ro)

 

exportfs -a                         //a : /etc/exports 파일 적용
exportfs -v                         //v : 현재 공유 목록 확인

 

 

 

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

 

#cd /mnt/images/pxeboot


#ls
TRANS.TBL  initrd.img  vmlinuz

 

#cp ./{initrd.img,vmlinuz} /ks/tftpboot/centos6.8/

 

#vi /ks/tftpboot/pxelinux.cfg/default

 

timeout=30
default CentOS 6.8
label CentOS 6.8
kernel centos6.8/vmlinuz
append ksdevice=link load_ramdisk=1 initrd=centos6.8/initrd.img network ks=nfs:100.100.100.120:/ks/tftpboot/kickstart/ks.cfg

 

#cd ~

 

# vim anaconda-ks.cfg     // kickstart 파일

 

- 킥 스타트 옵션 설명은 아래 홈페이지에서 알아볼 수 있다.
https://access.redhat.com/documentation/ko-KR/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html

 

#vi /ks/tftpboot/kickstart/ks.cfg 

 

 

 

#cd /ks/tftpboot/kickstart/


#ls
ks.cfg

 

#service dhcpd restart
#service xinetd restart
#service rpcbind restart
#service nfs restart

 

TEST 서버 실행

 

 

'Linux' 카테고리의 다른 글

Day-42 Mail  (0) 2017.03.02
Day-41 iptables  (0) 2017.02.09
Day-37 Samba & NFS  (0) 2017.01.31
Day-36 FTPS & Samba(미완)  (0) 2017.01.31
Day-35 VSFTP (미완)  (0) 2017.01.30