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 |