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

[리눅스] KickStart ①

by 상달군 2024. 2. 19.
728x90

NFS를 이용한 ks.cfg파일 

[root@master ~]# cat myPXEnfs-ks.cfg0202
# Kickstart 파일
# 필요한 설정에 따라 수정해야 합니다.

#version=RHEL8
# Use graphical install

graphical

# Use NFS installation media
nfs --server=10.0.0.1 --dir=/scr/nfshome/iso


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

%end

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network --bootproto=dhcp --device=eth0 --onboot=yes --ipv6=off --activate
network  --hostname=localhost.localdomain

# 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 Asia/Seoul --isUtc

# Root password
rootpw --iscrypted $6$OWCWB/EK5iXxrhab$bJNjTilTJDViS2rCcKr5WENKQd5Mv0C14nE/RistzKbSkNZoVP/2Kjs5EwRoEz5.CmqCzMJ9ydqO4Mq3vqnly1

%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

 


현재 작업중이 ks.cfg 파일 

  1. 네트워크 설정 할때 변수를 이용하여 쉽게 변경해주기 
  2. 네트워크 카드 장비명을 eth0으로 설정 하기 
  3. text모드로 설치하기 
  4. OS 최소 설치 
  5. NFS 마운트해서 MAC주소를 보고 설치 하게 해놓은 TFTP파일 삭제하기 
  6. hostname변경하기
  7. /etc/fstab 수정하기 
[root@master ~]# cat /scr/nfshome/iso/mypost-ks.cfg
# Kickstart 파일
# 필요한 설정에 따라 수정해야 합니다.

##################################pre################################################################
%pre

# Network 변수
IPADDR=10.0.0.102
GATEWAY=10.0.0.1
NETMASK=255.255.255.0
BROADCAST=10.0.0.255
NETWORK=10.0.0.0

# NFS 마운트
#mkdir /mnt/nfs
#mount -t nfs 10.0.0.1:/var/lib/tftpboot/pxelinux.cfg/ /mnt/nfs


# eth0 설정 파일 생성
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=$IPADDR
NETMASK=$NETMASK
BROADCAST=$BROADCAST
NETWORK=$NETWORK
EOF

# 네트워크 설정
cat > /etc/sysconfig/network << EOF
NETWORKING=yes
GATEWAY=$GATEWAY
GATEWAYDEV=eth0
EOF

%end

#####################################################################################################

#version=RHEL8
# Use graphical install
text
#graphical

# Use NFS installation media
nfs --server=10.0.0.1 --dir=/scr/nfshome/iso


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

%end

###############################POST################################################
%post


# NFS 마운트
mkdir /mnt/nfs
mount -t nfs 10.0.0.1:/var/lib/tftpboot/pxelinux.cfg/ /mnt/nfs

# 특정 디렉토리에서 파일 삭제
rm -rf /mnt/nfs/01-*

# NFS 마운트 해제
umount /mnt/nfs
rm -rf /mnt/nfs/

# hostname 설정
#echo "n002" > /etc/hostname

# 현재 세션에 즉시 반영

sudo hostnamectl set-hostname n002

# fstab backup
cp /etc/fstab /etc/fstab.bak

# fstab UUID -> LABEL

echo "/dev/sda1       /                       xfs     defaults        0 0" > /etc/fstab
echo "/dev/sda6       /scr                    xfs     defaults        0 0" >> /etc/fstab
echo "/dev/sda2       /usr                    xfs     defaults        0 0" >> /etc/fstab
echo "/dev/sda3       /var                    xfs     defaults        0 0" >> /etc/fstab
echo "/dev/sda5       none                    swap    defaults        0 0" >> /etc/fstab

reboot
%end
###################################################################################

# Keyboard layouts
keyboard --xlayouts='us'
# System language
lang en_US.UTF-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 Asia/Seoul --isUtc

# Root password
rootpw --iscrypted $6$OWCWB/EK5iXxrhab$bJNjTilTJDViS2rCcKr5WENKQd5Mv0C14nE/RistzKbSkNZoVP/2Kjs5EwRoEz5.CmqCzMJ9ydqO4Mq3vqnly1

# 라이센스 자동동의
eula --agreed

# SELinux off
selinux --disabled

%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

reboot

 

🎈현재 추가 완료한 내용 

 

pre 세션에서 

  • 네트워크 설정 

post 세션에서

  • 재부팅시 설치가 되지 않게 TFTP에서 "01" 로 시작 하는 파일 삭제하기
    • 01로 시작하는 파일(MAC주소)가 있으면 해당 MAC주소가 부팅 할때 계속 os가 재설치 된다. 그러지 않기 위해서 TFTP디렉토리에서 해당 파일을 삭제 해주어야한다. 
  • hostname 변경하기
  • /etc/fstab 수정하기 
    • 처음에는 UUID로 설치가 되는걸 /dev/sdb*이런식으로 변경 해주기 
  • ssh 공개키로 접근할 수 있게 설정하기 
    • 해당 내용은 위에 소스에 넣어 놓지는 않았음
728x90

'리눅스 > 서버운영' 카테고리의 다른 글

RAID란?  (0) 2024.02.23
[리눅스] PXE부팅으로 OS설치하기  (0) 2024.01.31
[리눅스] NFS 서버 구성하기  (1) 2024.01.31
[리눅스] TFTP, VSFTP서버 구성하기  (0) 2024.01.29
[리눅스] DHCP서버 구성하기  (0) 2024.01.29

댓글