KickStart 세팅하기
Kickstart는 Red Hat 계열의 리눅스 배포판(예: Red Hat Enterprise Linux, CentOS, Fedora)에서 자동으로 운영 체제를 설치할 수 있게 해주는 자동화 설치 스크립트. 수동으로 일일이 설정할 필요 없이, 미리 정의된 설정 파일을 사용하여 빠르고 일관되게 여러 시스템에 운영 체제를 설치할 수 있다.
Kickstart 파일은 설치 과정에서 필요한 다양한 설정을 미리 지정해 두는 텍스트 파일 형식. 이를 통해 사용자는 네트워크 설정, 파티셔닝, 패키지 설치, 사용자 계정, 서비스 설정 등을 자동으로 처리할 수 있다.
vi /var/lib/tftpboot/pxelinux.cfg/default 에 부팅 내용 설정
default menu.c32 // 실행할 파일의 이름
prompt 0 // 메뉴 출력 여부 (0 : 출력 , 1 : 출력 X)
timeout 150 // 메뉴 대기 시간 15초
ontimeout local // 메뉴 대기 시간 초과 시 실행할 내용 (local)
LABEL local // 대기 시간이 초과할 시 진행할 메뉴
MENU LABEL Boot Local Disk // 메뉴에 출력될 내용
localboot 0 // 하드디스크 부팅
KERNEL /rockylinux8.6/vmlinuz // (/var/lib/tftpboot 의 경로)
APPEND initrd=/rockylinux8.6/initrd.img inst.repo=ftp://192.168.56.20/rockylinux8.6 // initrd.img 파일의 경로와 운영체제 설치에 필요한 파일을 다운로드할 경로
리눅스는 현재 설치된 시스템의 설정이 /root/anaconda-ks.cfg 라는 이름으로 저장됨.
이 파일을 이용하여 kickstart 설치를 진행.
mkdir /var/ftp/kickstart
cp ~/anaconda-ks.cfg /var/ftp/kickstart/rockylinux86.cfg
vi /var/ftp/kickstart/rockylinux86.cfg
# version=RHEL8
# Use graphical install
graphical # 설치 과정이 텍스트 모드가 아닌 GUI를 통해 진행
reboot #설치 완료 후 재부팅
url --url="ftp://192.168.56.20/rockylinux8.6/BaseOS" # 설치 파일 지정
repo --name="AppStream" --baseurl="ftp://192.168.56.20/rockylinux8.6/AppStream" # 추가 패키지들이 설치되지 않을 경우 해당 내용 추가
#repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream
%packages #설치 패키지들
@^minimal-environment
@development
@legacy-unix
@rpm-development-tools
@system-tools
# Keyboard layouts #키보드 언어 설정
keyboard --xlayouts='us'
# System language OS 언어 설정
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=enp0s3 --ipv6=auto --activate
network --bootproto=dhcp --device=enp0s8 --onboot=off --ipv6=auto
network --hostname=localhost.localdomain
# Use CDROM installation media
#cdrom 주석처리하기
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Partition clearing information
#clearpart --none --initlabel
clearpart --all #킥스타트로 설치 시 모든 드라이브의 기존 파티션, 파일 삭제
# Disk partitioning information
#part / --fstype="xfs" --ondisk=sda --size=46076
part biosboot --fstype="biosboot" --ondisk=sda --size=2
part / --fstype="xfs" --ondisk=sda --grow # / 의 크기를 지정하지 않고 나머지 크기로 잡을 때
part swap --fstype="swap" --ondisk=sda --size=4096
part /boot --fstype="xfs" --ondisk=sda --size=1024
# System timezone
timezone Asia/Seoul --isUtc --nontp
# Root password
rootpw --iscrypted $6$gnytqR3I4CtdVTp2$jx.hfKTejCMGiru03o19DYPvT07xRifPcJd19QVd8o9KhOZoQSWRp5q.KIfUkB2MGgUGrolAs7IdOwdwHjBqe1
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%post
systemctl disable multipathd # 설치 완료 후 kickstart 거치지 않고 재부팅
%end
# Root --password의 iscrypted는
vi /etc/shadow 에 표시되어 있는 root 의 비밀번호로 입력
chmod 755 /var/ftp/kickstart/rockylinux86.cfg
엑세스 권한이 없으면 서버에서 사용하지 못함
vi /var/lib/tftpboot/pxelinux.cfg/default 내용 수정
default menu.c32
prompt 0
timeout 600
ontimeout local
LABEL local
MENU LABEL Boot Local Disk
localboot 0
LABEL RockyLinux8.6
MENU LABEL RockyLinux 8.6 Install
KERNEL /rockylinux8.6/vmlinuz
APPEND initrd=/rockylinux8.6/initrd.img inst.repo=ftp://192.168.56.20/rockylinux8.6
LABEL RockyLinux8.6(Kickstart)
MENU LABEL RockyLinux 8.6 Install(Kickstart)
KERNEL /rockylinux8.6/vmlinuz
APPEND initrd=/rockylinux8.6/initrd.img inst.repo=ftp://192.168.56.20/rockylinux8.6 inst.ks=ftp://192.168.56.20/kickstart/rockylinux86.cfg
새로운 VM 실행
F12 키를 눌러 boot 모드 진입
l(엘) 입력
새로 추가된 Kickstart 확인 및 선택
/var/ftp/kickstart/rockylinux86.cfg 해당 파일을 읽어와서 자동으로 설치 진행됨.
설치 후 IP가 사전에 설정된 범위 내에 있는지 확인
이상 숙련된 조교의 시범이었다.