#TFPT : Trivial FTP, 간단한(용량이 적은) 파일을 주고 받기 위한 프로토콜
통신방식 | UDP |
포트번호 | 69번 |
Trivial의 의미 | 하찮은, 보잘것 없는 |
tftp의 root 경로 | /var/lib/tftpboot/ |
yum -y install tftp-server | tftp-server를 설치 |
vi /etc/xinetd.d/tftp | tftp 설정 파일 |
xinetd.d : 네트워크 설정을 관리하는 데몬
- vi /etc/xinetd.d/tftp 설정 변경
#PxE 서버
-다수의 Baremetal 서버에 운영체제를 설치하기 위해서 사용하는 서버
#PxE 서버에 필요한 프로토콜
1.DHCP : 운영체제가 미 설치되어 IP를 설정할 수 없는 서버에 IP를 부여한다.
2.tftp : 운영체제를 설치하기 위한 절차 정보가 담긴 파일을 전송하기 위한 프로토콜
3.FTP OR HTTP : 운영체제 이미지 파일을 전송하기 위한 프로토콜
#Vmware에서 PxE 서버 만들기(IP: 211.183.3.60 / 24)
0.방화벽 중단 및 selinux를 disalbed로 변경하기
systemctl stop firewalld | 방화벽 정지 |
systemctl disable firewalld | 방화벽이 시스템 재시작시 실행되지 않게 설정 |
vi /etc/selinux/config | 파일 내에서 SELINUX=disabled 로 변경 |
1.Pxe서버에 등록할 ISO 파일 연결하기
DVD-rom을 connected로 변경한다.
dvd-rom을 /media폴더로 마운트한다.(cd-rom 파일 실행을 위해)
mount 명령어 : mount 마운트할 폴더 마운트할경로
명령어
mount /dev/cdrom /media | /dev/cdrom을 /media로 마운트 한다. |
-> 마운트 성공 시 다음과 같이 메시지가 출력된다.
!참고 : 리눅스 IOS가 저장된 /dev/cdrom의 파일들
/dev : device의 정보가 저장된 폴더
2.PxE서버에 필요한 패키지를 설치한다.
yum -y install syslinux tftp-server dhcp vsftpd | syslinux, tftp-server, dhcp, vsftpd 패키지를 한번에 설치 |
dhcpd | baremetal 상태에서 통신을 하기위해 ip를 할당해주기 위한 패키지 |
tftp-server | 부트로더 파일을 tftp로 전송하기 위한 패키지 |
vsftp | OS의 IOS를 전송하기 위한 패키지 |
syslinux | 부트로더 파일이 있는 패키지 |
부트로더 : pxe 부팅에 필요한 파일(부팅에 필요한 절차)
3.ftp 서버 설정
cp -r /media/* /var/ftp/pub | media에 마운트된 OS의 IOS파일과 하위 디렉토리 모두를 /var/ftp/pub폴더로 복사 한다. |
/var/ftp/pub : ftp 설치 시 기본적으로 존재하는 pub 폴더(다른 폴더를 사용해도 무방한다.)
systemctl start vsftpd | ftp 서버를 가동한다. |
4.tftp 서버 설정
vi /etc/xinetd.d/tftp | tftp 서버 설정을 disable 항목을 no로 변경한다. |
systemctl restart tftp | 변경한 설정을 적용하기위해 tftp를 재시작 한다. |
5.tftp루트 폴더로 OS 설치 시 필요한 파일 복사하기
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/ | /pub폴더에 저장된 OS 이미지에서 압죽된 커널 파일을 tftp 루트 경로로 복사 |
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/ | /pub폴더에 저장된 램디스크 생성하는 이미지 파일을 tftp 루트 경로로 복사 |
램디스크 : baremetal 환경에서 OS의 IOS를 임시 저장할 공간.
6.syslinux 패키지에서 OS 설치 시 필요한 파일 복사하기
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ | 설치한 syslinux패키지에서 부트로더 파일을 tftpboot 폴더로 복사 |
부트로더 : pxe 부팅에 필요한 파일
7.tftp루트 폴더에서 정상적으로 파일이 옮겨 졌는지 확인하기
ls /var/lib/tftpboot/ | tftp 루트폴더에 저장된 파일을 확인 |
8.dhcp 설정
vi /etc/dhcp/dhcpd.conf | dhcp pool 설정을 변경한다. |
subnet 211.183.3.0 netmask 255.255.255.0 { option routers 211.183.3.2; option subnet-mask 255.255.255.0; range dynamic-bootp 211.183.3.240 211.183.3.250; option domain-name-servers 8.8.8.8; allow booting; allow bootp; next-server 211.183.3.60; filename "pxelinux.0"; } |
설정할 pool과 PxE 서버 등을 설정한다. |
systemctl restart dhcp | dhcp pool 적용을 위해서 dhcp를 재시작 한다. |
참고 : dhcp pool 설정 내용
subnet 211.183.3.0 netmask 255.255.255.0{ | DHCP pool을 설정할 ip와 서브넷 마스크 |
option routers 211.183.3.2; | 해당 네트워크의 게이트웨이 |
option subnet-mask 255.255.255.0; | 해당 네트워크의 서브넷 마스크 |
range dynamic-bootp 211.183.3.240 211.183.3.250; | ip를 받아올 수 없는 상태(baremetal)여도 ip를 부여하고, 뿌려줄 ip 대역을 설정 |
option domain-name-servers 8.8.8.8; | DHCP로 전달할 dns 설정 |
allow booting; | 부팅을 허용 |
allow bootp; | bootp 허용 |
next-server 211.183.3.60; | PxE 서버의 주소 |
filename "pxelinux.0";} | tftp로 부팅 절차를 받아올 파일명을 설정 |
9.tftp루트폴더에 default 파일 생성
cd /var/lib/tftpboot/ | tftp 루트 폴더로 이동 |
mkdir pxelinux.cfg | pxelinux.cfg 폴더 생성 |
vi default | default 파일 생성 및 편집 |
DEFAULT CentOS7_Auto_Install LABEL CentOS7_Auto_Install kernel vmlinuz APPEND initrd=initrd.img repo=ftp://211.183.3.60/pub |
default 파일에 내용 삽입 |
!!주의 : kernel과 APPEND는 탭을 주어야 한다
참고 : deafault
DEFAULT CentOS7_Auto_Install | 아무것도 설정하지 않았을 때 설치할 OS |
LABEL CentOS7_Auto_Install | 설치할 운영체제 리스트(pxe의 이름) |
kernel vmlinuz | 커널 정보가 담긴 파일 이름 |
APPEND initrd=initrd.img repo=ftp://211.183.3.60/pub | 램디스크 파일 지정, 이미지 파일, PxE 서버경로 설정 임시저장공간은 initrd.img 이라는 파일을 사용 운영체체 정보(iso파일)는 ftp로 받아온다. ftp서버의 주소는 211.183.3.60이고 /pub에 담겨져 있다. |