본문 바로가기
리눅스/서버운영

[리눅스] KickStart

by 상달군 2024. 1. 23.
728x90

1. KickStart란?

  • 리눅스 배포판에서 사용되는 자동화된 시스템 설치 도구
  • 주로 리눅스 서버 운영체제를 배포하고 설치하는 프로세스를 자동화하는 데 사용
  • 사용자는 특정 설정, 사용자 계정, 소프트웨어 패키지, 파일 시스템 및 기타 시스템 구성 요소에 대한 사전 정의된 설정을 담은 텍스트 파일을 작성하여 사용 가능

2. KickStart을 이용한 알마리눅스os 설치 USB 만들기 

- 보통 처음에 리눅스를 설치 하게 되면 home디렉토리 안에 anaconda-ks.cfg파일이 설치 된다. 

- anaconda-ks.cfg파일은 내가 OS를 설치하면서 설정했던 정보들이 기록되게 된다. 
-
 파일의 위치는 /root/anaconda-ks.cfg 

Test 환경:  완전 처음 설치된 상태의 알마리눅스8.9


2-1. KickStart 만드는 순서 

  1. OS설치 USB만들기
  2. Test환경에 USB 마운트하기
  3. ks.cfg 파일 만들기
  4. 바이오스에서 USB부팅 
  5. OS 설치

✔ anaconda-ks.cfg 파일의 위치

[root@localhost ~]# ll
total 12
-rw-------. 1 root root 1528 Jan 22 19:19 anaconda-ks.cfg
-rw-r--r--. 1 root root 1946 Jan 22 19:24 initial-setup-ks.cfg
-rw-------. 1 root root 1643 Jan 22 19:19 original-ks.cfg

✔ anaconda-ks.cfg파일의 내용들

[root@localhost ~]# cat anaconda-ks.cfg

해당 내용은 보통 OS정보, 기본설정,
부트로더 옵션, 인증, 방화벽, 선택한 패키지, 
키보드 설정, 날짜, 언어, 파티션정보, 네트워크 설정, root패스워드, 등등등..

✔ anaconda-ks.cfg 파일을 이용한 나만에 ks.cfg 파일 만들기 

[root@localhost ~]# cat /mnt/usb/my-ks.cfg
# Kickstart 파일 (my-ks.cfg)
# 필요한 설정에 따라 수정해야 합니다.

#version=RHEL8
# Use graphical install
graphical

repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-hdd-device/AppStream

%packages
@^graphical-server-environment
kexec-tools

%end

# Keyboard layouts(키보드)
keyboard --xlayouts='us'
# System language(시스템 언어설정)
lang en_US.UTF-8

# Network information (네트워크 정보)
network  --bootproto=static --device=enp1s0f0 --gateway=xxx.xxx.xxx.1 --ip=xxx.xxx.xxx.xxx --netmask=255.255.255.0 --ipv6=auto --activate
network  --bootproto=dhcp --device=enp1s0f1 --onboot=off --ipv6=auto
network  --hostname=localhost.localdomain

# Use hard drive installation media
harddrive --dir= --partition=LABEL=ALMALINUX-8

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
# Partition clearing information (파티션닝정보)
clearpart --none --initlabel
# Disk partitioning information
part /var --fstype="xfs" --onpart=sda3
part /usr --fstype="xfs" --onpart=sda2
part swap --fstype="swap" --onpart=sda5
part / --fstype="xfs" --onpart=sda1
part /scr --fstype="xfs" --onpart=sda6

# System timezone (시스템의 시간,지역정보)
timezone America/New_York --isUtc

# Root password (루트 패스워드)
rootpw --iscrypted 

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

✨ anaconda-ks.cfg 파일을 기반으로 my-ks.cfg파일 생성해주고 USB가 마운트 되어있는 디렉터리에 옮겨줍니다. 


✔ 부트로더에서 옵션주기

✨ 바이오스에서 USB부팅으로 변경후 USB를 장착후 실행하게되면 위와같이 부트로더 화면이 나타납니다. 

'install AlmaLinux 8.9'에 포인트를 가져다 놓고 Tab키(OS마다 다를수있음)를 눌르게 되면 왼쪽 그림 처럼 옵션을 줄수 있는 명령프롬토콜이 생성됩니다. 옵션으로  ks=hd:LABEL=ALMALINUX-8:/my-ks.cfg 을 주고 엔터를 누르면 됩니다. 

자동으로 설치가 진행됩니다.

끝 !

 


3. 부트로더에서 작성하는 내용에 대해서  

3-1. ks=hd:LABEL=ALMALINUX-8:/my-ks.cfg 

ks=hd:라벨,UUID등 다른것도 가능 : 내가 만든 ks.cfg파일의 절대경로 

라벨: USB의 이름 

 

3-2. USB이름을 찾는 방법은 여러 가지 입니다. 

1. lsblk 명령어를 이용하기 

[root@localhost ~]# lsblk -o NAME,LABEL
NAME   LABEL
sda
├─sda1
├─sda2
├─sda3
├─sda4
├─sda5
└─sda6
sdb
└─sdb1 ALMALINUX-8

sdb가 현재 OS설치 USB입니다. 

 

2. 위 오른쪽 그림을 보면 처음에 

initrd=initrd.img inst.repo=hd:LABEL=ALMALINUX-8 quiet

이 부분이 있는데 앞 LABEL과 똑같이작성 해주시면 됩니다. (단, KickStart 없이도 기본적으로 설치가 잘되는 USB여야함)


4. ks.cfg를 영구적으로 사용하기 

- 만약, 100대의 컴퓨터에 설치를 똑같은 설정으로 설치 해야한다면 매번 부트로더에서 똑같은 옵션을 손으로 치는것은 쉽지 않다. 그래서 영구적으로 옵션을 작성하지 않아도 자동으로 하는 방법이 있다. 

 

✔ isolinux.cfg파일찾기

[root@localhost ~]# ll /mnt/isolinux/isolinux.cfg
-rwxr-xr-x. 1 root root 3039 Jan 22 03:56 /mnt/isolinux/isolinux.cfg

✨ USB를 마운트 하고 isolinux디렉토리에 isolinux.cfg파일이 존재한다.


✔ isolinux.cfg파일수정

[root@localhost ~]# vi /mnt/usb/isolinux/isolinux.cfg

----원본
...

label linux
  menu label ^Install AlmaLinux 8.9
  kernel vmlinuz
  append initrd=initrd.img inst.repo=hd:LABEL=ALMALINUX-8 quiet 

...

----수정후
...

label linux
  menu label ^Install AlmaLinux 8.9
  kernel vmlinuz
  append initrd=initrd.img inst.repo=hd:LABEL=ALMALINUX-8 quiet ks=hd:LABEL=ALMALINUX-8:/my-ks.cfg

...

✨ 해당파일에서 보통 label linux라고 되어있는 부분을 찾아서 append부분에 아까 옵션을 추가 해주면 부트로더 자동으로 작성이 된다.(부트로드화면에서 Tab키를 눌러 확인해보면 자동으로 작성이 되어있는걸 볼수 있다.)

728x90

댓글