LINUX(Server)

PXE , Kick start

천천히, 한 걸음씩 2024. 4. 29. 09:36

PXE , Kick start

* PXE ( Pre-boot eXecution Environment ) 
- 사전 부팅 실행 환경
- 네트워크 인터페이스 ( NIC )를 통해 부팅하는 환경

* kick start
- 운영체제 설치시 필요한 모든 설정과
  설치 후에 해야될 설정까지 모두 자동으로 구성해주는 기능/환경


! 서버 구축

1. 방화벽 해지
#setenforce 0
#service iptables stop

2. 패키지 설치
#yum -y install tftp-server syslinux dhcp nfs-utils

3. TFTP 서버 설정

#vi /etc/xinetd.d/tftp
-----------------------------------

(13번행) server_args = -s /ks/tftpboot // 홈디렉터리
(14번행) disable     = no // tftp 사용

:wq
-----------------------------------

4. 서버의 디렉터리 구조 생성

#mkdir -p /ks/tftpboot/kickstart
#mkdir /ks/tftpboot/pxelinux.cfg
#mkdir /ks/tftpboot/centos6.9

#ls /ks/tftpboot // 디렉터리 확인

5. DHCP서버 설정
#vi /etc/dhcp/dhcpd.conf
-------------------------------
subnet 100.100.100.0 netmask 255.255.255.0 {

range 100.100.100.10 100.100.100.20;
option routers 100.100.100.2;
option subnet-mask 255.255.255.0;
option broadcast-address 100.100.100.255;
option domain-name-servers 168.126.63.1 , 168.126.63.2;
default-lease-time 30000;
max-lease-time 60000;
filename "pxelinux.0"; //DHCP 서버로부터 IP를 받은 클라이언트가
  실행할 파일의 이름

}

:wq
-------------------------------

#service dhcpd start


6. 리눅스 이미지 마운트

-> Server-A 
-> Settings 
-> CD/DVD-ROM
-> Centos6.9.DVD1.iso 탑재 ( Connect 체크 확인 )

@Server-A
#mount -t iso9660 /dev/cdrom /mnt
#df -h


7. 부트로더 , 커널관련 파일 복사

#cp /usr/share/syslinux/pxelinux.0 /ks/tftpboot // 부트로더 파일
#cp /usr/share/syslinux/menu.c32 /ks/tftpboot // 메뉴구성 파일

#cp /mnt/images/pxeboot/initrd.img /ks/tftpboot/centos6.9 // 초기 램디스크 이미지파일 (커널 모듈)
#cp /mnt/images/pxeboot/vmlinuz /ks/tftpboot/centos6.9 // 커널 이미지 파일


8. NFS 설정    // nfs를 통해 패키지들을 클라이언트에게 제공
#vi /etc/exports
-----------------------------
/mnt 100.100.100.0/24(ro)
/ks/tfptboot/kickstart 100.100.100.0/24(ro)

:wq
----------------------------

#exportfs -vr // 확인


9. 킥스타트 메뉴파일 작성
#vi /ks/tftpboot/pxelinux.cfg/default ( 생성 )
----------------------------------------------
default menu.c32 // 실행할 파일이름
prompt 0 // 프롬프트(명령) 사용여부
timeout 100 // 메뉴대기시간 10초

LABEL CentOS6.9 // 설정을 구분하기 위한 이름
        MENU LABEL ^0) CentOS 6.9 64bit Install ( NFS ) // 메뉴에 출력될 내용
        KERNEL /centos6.9/vmlinuz // 커널의 이미지파일 경로

APPEND initrd=/centos6.9/initrd.img load_ramdisk=1 network ksdevice=link ks=nfs:100.100.100.100:/ks/tftpboot/kickstart/ks.cfg  // 추가 옵션사용

:wq
---------------------------------------------

10. 킥스타트 설정 파일 ( 구글 -> Redhat kickstart 32.4 킥스타트 옵션 검색 )

#vi /ks/tftpboot/kickstart/ks.cfg ( 생성 )
-----------------------------------------
install
text
nfs --server=100.100.100.100 --dir=/mnt/
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6 
rootpw 111111 
firewall --disabled
selinux --disabled
authconfig --enableshadow --passalgo=sha512
timezone --utc Asia/Seoul
bootloader --location=mbr --driveorder=sda, --append="rhgb quiet"
clearpart --initlabel --all
zerombr
part /boot --fstype=ext4 --size=200
part swap --size=512
part / --fstype=ext4 --grow --size=200
reboot
%packages
@core
@korean-support
%end

:wq
-------------------------------------------

11. 서비스 시작

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

'LINUX(Server)' 카테고리의 다른 글

Iptables  (1) 2024.05.01
NTP  (0) 2024.04.30
DNS  (0) 2024.04.28
NFS  (2) 2024.04.27
FTP  (2) 2024.04.26