PxE kickstart
- OS설치 시의 설정값을 세팅을 통해 자동으로 OS가 설치 완료되게 하는 구성파일
/boot:
/ : 최상위 디렉토리
swap:
- 안에 내용 지워질 건데 괜찮여?라고 물어보는 창
root아이디랑 비번 넣어줌
보안 설정
[root@server2 ~]# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
[root@server2 ~]# reboot
[root@server2 ~]# systemctl stop firewalld
[root@server2 ~]# systemctl disable firewalld
[root@server2 ~]# cat <<EOF> /etc/yum.repos.d/CentOS-Base.repo
yum install -y system-config-kickstart
- gui 서버에 접속해서 킥스타트 패키지를 설치한다.
- 추가된 걸 확인할 수 있음
- kickstart 클릭
- 여기서는 root PW 입력
- 기존에 boot loader가 존재한다면 안 만들어도 되지만 우리는 부트로더가 존재하지 않으므로 새로 만들어야 함
- 부트로더? 부트스트랩이라고도 부르며, '부팅 이전의 절차' 정도로 생각하면 좋음, 커널을 동작시키고, 메모리, 디스크를 정의하며 부팅이 될 수 있는 상태를 만드는 행위임
- 가상메모리(리눅스에서는 가상메모리, 즉 디스크를 마치 램처럼 사용하는 것을 swap이라고 부름)
섹터: 디스크의 기본단위(하드웨어)
- 여러 개의 섹터가 모여서 하나의 블록을 만들 수 있음
- 하드디스크에서 데이터를 저장하는 가장 '작은' 물리적 단위
블록: 소프트웨어적인 기본단위
- 여러 개의 블록 파일을 합쳐서 하나의 파일로 만들 수 있음
- 대용량 파일을 다룬다면 그것에 맞춰서 블록 크기를 크게 하는 게 좋음
- 파일시스템에서 데이터를 저장하는 논리적 단위
- 운영체제가 파일을 저장할 때는 '섹터' 하나씩 저장하는 게 아니라, 여러 개의 섹터를 묶어서 '블록' 단위로 저장하는
- 레이이웃에 두 개 있는지 확인
- /var 하위에 kick 생성
- 저장할 파일 이름은 kick
- 생성된 걸 확인할 수 있음
%packages
@^minimal
@core
chrony
kexec-tools
%end
- 이 내용을 kick.cfg파일에 추가해 주자
[root@cent7-gui ~]# vi /var/kick/kick.cfg
- 킥스타트 파일이 잘 구성됨. 우리에게 필요한 건 이 kick.cfg파일이며, 이 파일을 pxe-client에게 보내줘야 하므로, pxe서버에 넣어주자
[root@pxe ~]# cd /var/ftp/pub
[root@pxe pub]# vi kick.cfg
- pxe 서버의 pub 폴더에 같은 내용을 갖고 있는 동일한 파일을 하나 만들어주자.
[root@pxe pub]# vi /var/lib/tftpboot/pxelinux.cfg/default
- pxe-cil를 켜서 설치 로딩화면까지 넘어가면 잘 된 거임
실습
pxe-ftp 10.10.3.21 (OS설치파일)
pxe-http 10.10.4.80 (킥스타트 파일)
pxe-tftp 10.10.3.69 (부팅에 필요한 파일 전송)
pxe-dhcp 10.10.1.67 (client에게 ip 부여)
pxe-client 10.10.3.0 /24 대역에서 150~160 아이피가 할당됐으면 좋겠다.
pxe 클라이언트들이 적절하게 OS가 설치되도록 한번 해보세요!
pxe 서버는 전부 미니멀로 해도 됩니다!
R1(config)#access-list 1 per 10.10.1.0 0.0.0.255
R1(config)#access-list 2 per 10.10.3.0 0.0.0.255
R1(config)#access-list 3 per 10.10.4.0 0.0.0.255
-> 한 번에 해주는 방법은 R1(config)#access-list 3 per 10.10.0.0 0.0.255.255
- 라우터 설정 내용과 8.8.8.8로 핑이 잘 가는 모습
오류/ 해결 방안
- gns3에서는 가는데 xshell에서 ping이 안 간다면? gns3 선 delete 했다가 재연결해주기
- 다시 연결된 걸 확인할 수 있음.
pxe-ftp 10.10.3.21 (OS설치파일)
pxe-http 10.10.4.80 (킥스타트 파일)
pxe-tftp 10.10.3.69 (부팅에 필요한 파일 전송)
pxe-dhcp 10.10.1.67 (client에게 ip 부여)
pxe-client 10.10.3.0 /24 대역에서 150~160 아이피가 할당됐으면 좋겠다./ client os 설정 ㄴㄴ
먼저 문제를 해결하는데 순서로는 dhcp -> tftp -> ftp -> http 순으로 진행할 예정
ftp, tftp에 application에 위치한 것
pxe-dhcp 10.10.1.67 (client에게 ip 부여)
subnet 10.10.1.0 netmask 255.255.255.0{}
#ip 대역이 다르니까 필요함
subnet 10.10.3.0 netmask 255.255.255.0
{
option routers 211.183.3.2;
#GW
option subnet-mask 255.255.255.0;
#SM
range dynamic-bootp 10.10.3.150 10.10.3.160;
# 부여받는 서버 ip 범위
option domain-name-servers 8.8.8.8;
#DNS
allow booting;
#부팅 허용.
next-server 10.10.3.69;
#내 pxe ip주소를 넣어줘야됨
#PxE 서버의 주소, 정확하게 얘기하자면 tftp주소
filename "pxelinux.0";
# next-server에 가서 받아올 파일.
}
systemctl restart dhcp
systemctl enable dhcp
help-address 설정
R1(config)#int f0/1
R1(config-if)#ip helper-address 10.10.1.67
- 받아왔음
pxe-tftp 10.10.3.69 (부팅에 필요한 파일 전송)
방어벽 ~~ 그거 설정해 주고
[root@pxe-tftp ~]# mount /dev/cdrom /media
mount: /dev/sr0 is write-protected, mounting read-only
[root@pxe-tftp ~]# yum install -y tftp-server
[root@pxe-tftp ~]# cp /media/images/pxeboot/vmlinuz /var/lib/tftpboot
[root@pxe-tftp ~]# cp /media/images/pxeboot/initrd.img /var/lib/tftpboot
[root@pxe-tftp ~]# yum install -y syslinux
- 파일 잘 있는지 확인 (둘 다 확인 가능한 방법임)
[root@pxe-tftp ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
[root@pxe-tftp ~]# systemctl restart tftp
[root@pxe-tftp ~]# systemctl enable tftp
[root@pxe-tftp ~]# ls -al /var/lib/tftpboot
default file 구성
[root@pxe-tftp ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe-tftp ~]# cd /var/lib/tftpboot/pxelinux.cfg
[root@pxe-tftp pxelinux.cfg]# vi default
DEFAULT centos7_pxe
LABEL centos7_pxe
kernel vmlinuz
APPEND initrd=initrd.img repo=ftp://10.10.3.21/pub
#ks=http://10.10.4.80/kick.cfg 나중에 해줘야 됨 미리 하면 안 됨
pxe-ftp 10.10.3.21 (OS설치파일)
방어벽 ~~ 설정
yum install -y vsftpd
- connected 해줘야 됨
systemctl restart vsftpd
systemctl enable vsftpd
[root@pre-ftp ~]# mount /dev/cdrom /media
[root@pre-ftp ~]# cp -r /media/* /var/ftp/pub
- 여기까지 실행된 걸 확인할 수 있음
pxe-http 10.10.4.80 (킥스타트 파일)
- 빈 파일에 내용 복붙
[root@web ~]# vi /var/www/html/kick.cfg
- GUI로 사용했던 kick을 dvd os가 아닌 상태에서도 사용하기 위해 kick내용을 가져와야 됨
- 빈 파일에 내용 복붙
- vi 편집기 명령모드(= esc 클릭)에 전체 삭제. ggdG 입력(잘못 복붙 해서 필요해서 가져와봄)
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$1OY1ngum$NEOqu9p9uxPnFG3pcRaGD0
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --enforcing
# Firewall configuration
firewall --disabled
# Reboot after installation
reboot
# System timezone
timezone Africa/Abidjan
# Use network installation
url --url="ftp://10.10.3.21/pub"
# ******ftp에 복붙한 ftp/pub를 가져와야됨 그래서 ftp주소를 넣어줘야됨 *****
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1
# 추가
%packages
@^minimal
@core
chrony
kexec-tools
%end
다시 tftp서버로 돌아가서
vi default 수정
DEFAULT centos7_pxe
LABEL centos7_pxe
kernel vmlinuz
APPEND initrd=initrd.img repo=ftp://10.10.3.21/pub ks=http://10.10.4.80/kick.cfg
systemctl restart httpd
systemctl enable httpd
'AWS Cloud School 8기 > 서버가상화_클라우드 이미지' 카테고리의 다른 글
디스크 관리, RAID (2) | 2025.01.27 |
---|---|
방어벽/ 포트의 개념 (0) | 2025.01.26 |
FTP(신뢰성 y 파일 전송 y),DHCP(IP부여) ,TFTP(신뢰성 n 파일 전송 y), PxE(OS 설치 환경 -> 네트워크 -> 제공) 응용 문제/ 이론 (5) | 2025.01.24 |
NFS 설명+실습 / (status 이상하게 자꾸 까먹어서 적어봄)/ 마운트 해제 (0) | 2025.01.22 |
DNS/ 호스트네임 변경하는 방법 (0) | 2025.01.22 |